the thread executing callbacks is the same one doing stream/put!
if the consumer is already waiting with a corresponding stream/take!
unless there’s a separate executor specified with stream/onto
stream is marked as drained by the thread doing stream/take!
or the one doing stream/close!
so that’s the thread that’s going to invoke the on-drained
callback