In the allgather implementation, we decided that it was OK to commit to location of data buffers as soon as they were ready, rather than doing a "I have some data/OK I am ready for it" syn-ack round trip.
We should do the same in the shuffler: this would simplify the logic in the event loop and remove one round trip of messages.