hmm... I think this may end up with ChannelPromises that are notified as you only use the passed ChannelPromise if a closeListener is not created yet.