Time out and retry stalled getAuthorFeed calls during backfill
Cold BunnyCDN paths on public.api.bsky.app can return 200 responses 2+
minutes after the request — observed in production where a single
getAuthorFeed page hung for 117s while the backfill loop sat idle. Add
a per-attempt AbortSignal timeout (15s) with 2 retries; on exhaustion,
throw a new BlueskyStalledError. The backfill loop catches it and
retries the same cursor indefinitely so a stall can't leave a user's
posts permanently half-loaded.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>