and add tests, improve comments, and and don't use timeout connection error as that's not what happens if aborted request from service worker is reported as TypeError either.