Add loop_guard.py to check queue.json before spawning hermes.
When queue is empty, applies exponential backoff (60s→120s→240s→600s max)
instead of burning cycles every 3 seconds. Update cycle_retro.py to
reject idle entries (no issue + no duration) so empty cycles never
pollute cycles.jsonl again.
Fixes#430
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>