What we have is a critical section of code where only one thread at a time can send downstream events, so I've restored the sending downstream of ordered events within the lock, but retained the closing of the channel outside of the lock.