Objective: Add a configurable timeout for executing a single move/command with safe cancellation and surfaced error.
Context:
- Likely in
src/server/command/executor.ts and src/server/command/move-piece.ts.
- Consider backoff/retry policy vs fail-fast; ensure robot state and game state remain consistent on timeout.
Acceptance:
- Timeout duration is configurable; exceeded timeouts cancel in-flight move and report failure via API/socket.
- No partial state is left inconsistent; next moves can proceed safely.
- Simulator scenario demonstrates a timeout and recovery.