Primary finding
Watchdog timer is not cleared on error/fallback, leaking a pending timer per attempt
- src/providers/orchestrator.ts:391-409
- src/providers/orchestrator.ts:431-433
- src/providers/orchestrator.ts:514-518
On success, the watchdog timer is cleared. On exceptions/fallback (catch path), the timer is not cleared, leaving a pending timeout that will fire later and abort the now-orphaned controller. This creates dangling timers per failed attempt and unnecessary abort callbacks, wasting resources and complicating debugging.
Recommendation
Clear watchdogTimer in a finally block so it runs on both success and error. Example: move `if (watchdogTimer) clearTimeout(watchdogTimer);` into the finally or ensure it executes before continuing to the next candidate.