Some syntactic sugar a la await could be nice though.
1.) In the StartSenders method, you're violating the Rx grammar by calling channel.OnNext concurrently. Wrap it on a lock statement.
2) In StartReceiver you're missing out messages the way you handle the channel. Replace the loop with a call to channel.Subscribe
Some syntactic sugar a la await could be nice though.