`AbortSignal.timeout` will cause a timeout when transferring large blobs. by using `setTimeout` currently, the timeout only covers the phase of establishing a connection.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved reliability of request cancellation and timeout handling for HTTP requests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->