Three coherent additions that the MGC rendezvous planner depends on:
- machineGroupControl.json: new `planner.useRendezvous` boolean (default
true). Used by both `_optimalControl` and `equalFlowControl` (via the
shared `_dispatchFlowDistribution` helper) to gate same-time-landing.
- state.js: external aborts (returnToOperational=false) bump a monotonic
`sequenceAbortToken`. executeSequence captures it at entry and bails
out of its for-loop if it advances mid-sequence, so a shutdown that's
past its ramp-down step doesn't barge through stopping → coolingdown
when a fresher demand re-engages the pump.
- stateManager.js: new `getRemainingTransitionS()` returns the seconds
remaining in a timed state by reading the wall-clock entry timestamp.
buildProfile() reads it so the planner can compute exact eta for a
child that's currently mid-ladder (warmingup / starting / cooling).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>