Ensure listener is still registered and has a callback before blindly trying to call it.
Prevent registering bad listener. Copy list of listeners to trigger always.