I don't see anything wrong. You start three tasks: pinger, closed connection watcher and channel worker. But only one task (channel worker) sends data to the stream.
Looks like a bug.