- Better JSZip loading: handles default/JSZip/global to avoid “not a constructor” errors
- Parallel downloads: limited concurrency speeds up large books versus strictly serial fetches
- Retry logic: per-file retries with backoff instead of aborting on the first failure