The core message listeners have the ability to interrupt messages currently being processed which works with synchronous message listeners by interrupting the thread. This doesnt work for asynchronous listeners as it will be run on it's own thread.
This should make it so that the CompletableFuture returned by the message listener is cancelled and it is up to the message listener to be able to handle this situation.