Lets assume two concurrent onNext competes for canEmit, the first succeeds and drains an empty queue. The second comes in and enqueues its value. The two exit onNext. In this case, the second onNext's value sits in the queue until another event happens. (Btw., the queue/drain doesn't exhibit this.) Can we accept such delay?