Fix agent repr

Close channel before remove from outstanding
Do not update when the desired state is received more than once

@peterbourgon