Give next-response/timer-expired priority over packing downstream.
I don't know what I was thinking in
f1ee951fd67d43c3f642c1f319678da51dd05c9b. The way it was written, if
there were not immediately additional packets to pack into the
downstream, it would stop trying to pack and would instead wait until
the maxResponseDelay or another response to send. What I meant is that
the timer and the next-response channel should have priority, if either
of those is true *and* there is additional downstream available to pack.
Only when both of those are false should we try to pack downstream data.