If we have any MPSC channels that are not read (for instance because a task is not started in the current mode) then they could "fill up" and block calling code.
See consensus/primary/src/primary.rs around line 103 for a task that is started just to deal with this.
We want something more robust then this, we use a wrapper around MPSC channels already so maybe we can adapt it to turn send() into a no-op when there is no receiver for instance. The goal would be to keep sending code "clean" and not have to start otherwise useless tasks.