Publisher.shutdown should return promptly

Current implementation waits for all messages to either succeed or fail before returning.

This will change the behavior of shutdown. So we should wait for awaitTermination to bake in for a while before doing this.