Sends event, suspending while the buffer is full.
if the channel was closed with close.
if the calling coroutine is cancelled while suspended.