Harden firehose threshold-scan + Discord webhook
- Discord webhook: add 5s per-attempt fetch timeout via AbortSignal so a
hung socket can't stall the worker. Treat AbortError as retryable.
- Discord webhook: stop retrying 4xx responses (except 429) — they're not
recoverable. On 429, honour Retry-After (capped at 10s) before falling
back to the static backoff schedule.
- threshold_scan_job: wrap dedup-row insertion so a UNIQUE-constraint
error from a concurrent replica is swallowed and logged via PostHog
instead of aborting the loop.
- Note at the AppView call site that getPosts already chunks to 25 URIs
internally.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>