Refactor async message reporting.

No more callback/errback slots updated together, use single
message-promise slot instead.