Add concurrent uploads with network resilience
Concurrent S3 uploads via bounded TaskGroup (default 6 workers).
Two-tier error handling: network-down errors trigger drain-then-pause
with automatic retry on recovery, server-transient errors retry with
exponential backoff and jitter.
Key changes:
- Typed URLError.Code + S3ClientError matching in RetryPolicy
- Network pause/resume with manifest save before waiting
- Cancellation-safe manifest save via do/catch for CancellationError
- UploadContext parameter object to reduce function parameter count
- maxPauseRetries cap prevents infinite pause/resume on flaky networks
- MockNetworkMonitor moved from production to test target