fix: admin resync uses runBackfill with post-backfill restart
- Resync endpoint sets repos to pending then calls runBackfill
instead of triggerAutoBackfill, using the same batch worker pool
- runBackfill returns record count; restart only if work was done
- Shared runBackfillAndRestart function used by both boot and resync
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>