I think the binding is waiting for a response to the 'query' messages - i.e. a query is sent for the current dynamic value, and it is not until the binding receives a response can it safely move onto the next stage (which in this case is DONE).

Can you remove lines 340-343 and see if things still work?