Unfortunately, this is done on purpose. It handles the situation where you send 3 messages in a row, for example, and only the middle message send has a callback. If I didn't preserve a spot for the other messages in the callback queue, then it would potentially fire the callback for the wrong message confirmation.