Right, but what if a queue contains 2 kinds of messages - one that needs a reply and one that doesn't?

He wouldn't know beforehand which is the next message type.

Seems to me we can simply skip the send if the callback returns null.