FinishOrder called SetWaitingOnController, although the order (constructing) had pushed another order (gather).
This is done now by telling we finished the order only when really idle.
Introduced in rP12911(, changed in rP23744), this seems to boil down to the question: If we issued an order to a formation, and its members have wandered off (imagine attacking an entity and our members have finished the initial target but attack nearby ones) do we want the whole formation to continue attacking or execute the next order.