When the write worker is actually idle, block instead of poll.

Since the code knows when the write worker should actually be idle, and
the transition to being active is based on receiving user payload, use
a blocking channel read as appropriate here instead of polling every
rho for data.