Shrink based on received ack, not own ack (duh)
Cache encoded message until it changes
Updated tests to work with the correct shrink behavior