Thanks for these two articles.
You touched on something in the first article, but missed it in this one, where I think it belonged, and that is handling communication latency.
This occurs where your user is at the back-end of a satellite connection (e.g. they’re in a remote area and the mobile network is running over a satellite hop or two).
Satellite will often add around a second to roundtrip times. This breaks very ‘chatty’ apps.
Having a service worker helps some of the user experience, but it’s really only introducing a layer of buffering. If the service worker itself is poorly designed the problem still remains.