dispatch Event Async
Dispatches the given event to the registered listeners.
The event must either be a GenericEvent or a BEvent, passing neither of them is a no-op.
Execution model
This method will fire all listeners as if they were ASYNC, and never blocks.
Any thrown exception will be logged separately and do not affect other listeners.