fix a suble race condition where finished? is set to true before the customer agent completes and sets the state to :shaved, and then not all customers are shaved at the end.  I was surprised this was still so subtle using STM :(