Geo: Make Geo blob download timeout configurable per site
## Problem
GitLab Geo has a hardcoded 8-hour (28,800 seconds) timeout for blob downloads that cannot be adjusted per site. This causes sync failures (with the message `Sync timed out after 28800`) for very large LFS objects (5+ GB) that require longer transfer times, leaving them stuck in an inconsistent "started" state rather than properly failing.
**Current behavior:**
* Large LFS objects timeout after 8 hours during Geo sync
* Objects remain in "started" state (state: 1) instead of "failed" state (state: 3)
* Sync retries every 8-9 hours but consistently fail with "Sync timed out after 28800"
**Impact:**
* Affects GitLab Dedicated migrations with large LFS objects
* Requires manual intervention to resolve sync failures
* 99%+ of smaller objects sync successfully
## Solution
Make the blob download timeout configurable at the Geo site level to accommodate different network conditions and file sizes.
**Implementation approach:**
1. Add configurable timeout setting to Geo site configuration
2. Update `Geo::BlobDownloadService::LEASE_TIMEOUT` to use site-specific value
3. Provide reasonable defaults while allowing customization
## Current Workaround
Manual resolution process:
1. Download objects from primary S3 bucket
2. Upload to secondary S3 bucket at same path
3. Manually mark as synced/verified in Geo registry
This workaround was used successfully for 3 large LFS objects (5-8 GB each) during a recent GitLab Dedicated migration.
## Related Issues
* GitLab issue #552408 (registry state machine issues)
* Observed in GitLab Dedicated migrations with multi-gigabyte LFS objects
* https://gitlab.com/gitlab-com/gl-infra/gitlab-dedicated/dedicated-migrations-group/dedicated-migrations/-/work_items/116
* https://gitlab.com/gitlab-com/gl-infra/gitlab-dedicated/dedicated-migrations-group/dedicated-migrations/-/work_items/122
issue