> So a solution should probably be done in software

In Chrome you can simulate a slow connection on a slow device via the dev tools. Firefox has a similar feature.

It's not entirely what you're suggesting (which is sort of like Chaos Monkey but for web apps I guess?)

Some way to simulate a slow CPU

Chrome DevTools have that too.