73f727b4c1
The heartbeat handler was returning cmd=abort for FailedHolding, which caused the agent's heartbeat goroutine to exit after ~10s in hold. Subsequent state changes (Cancel -> reboot, Override -> retry_stage) then had no recipient, so the host sat idle at the SSH hold prompt forever. Narrowed cmd=abort to StateReleased only; FailedHolding falls through to cmd=continue so the loop keeps polling and can receive the operator's eventual command.