Use buffered channels for next time send

This allows sending to still be async, but won't drop times if nobody is
ready to receive, like the switch statement!