Handle each individual consumer cancellation

Ensure that each consumer cancellation raises an exception when
#nextDelivery() is called, after which the object returns to a
consistent ready state.