The blocking write here combined with the non-zero but relatively small buffer means that this is a pretty dangerous foot-gun, no? Basically, any correct usage of a Listener *must* drain events (though this won't be evident for a while), but we make it easy to miss that due to the API we present.