Axios stream timeout only covers initial connection, not the body.
Once streaming starts, a stalled server would hang indefinitely.
- Added stallTimeout param (default 60s) to DoResumableDownloadParams
- Reset a timer on every received chunk; abort if no data arrives within the window
- Treat stall errors as retriable network errors in doResumableDownloadWithRetry
so partial downloads can resume from where they left off