Fixes locked consumers

If a consumer finishes without ack'ing, it's put back in the pool but won't be given another message, locking the consumer and message.

The dispatcher should assume that if a consumer finishes without an exception the message was processed and should be ack'd before putting the consumer back in the pool.