Hook sessions (e.g., from Gmail hooks) now auto-cleanup after a configurable TTL.
Changes:
- Add `hooks.sessionTtlMs` config option (default: 24 hours)
- Add `cleanupStaleHookSessions()` function that deletes stale hook sessions
- Run cleanup hourly via existing maintenance interval
- Only affects sessions with keys starting with "hook:"
- Sessions + transcripts are deleted after TTL expires
Config example:
```yaml
hooks:
sessionTtlMs: 86400000 # 24 hours (default)
# Set to 0 to disable cleanup
```
This prevents hook sessions from accumulating indefinitely while still
allowing time for debugging (sessions are kept for 24h by default).