The current implementation of the Trait Stream for Subscriber returns only one item from the buffer. Make an alternative version, perhaps called VectoredSubscriber, whose stream would always return a vector of items filled will all the items from the channel until the try_recv method returns TryRecvError::Empty.
This would optimize Task generation, and Task wake-ups in async operations.