Turns out, not a #Chrome bug instead a #WebTestRunner / #Puppeteer bug. Apparently concurrent tests run multiple tabs in the same window by default. This means only one page is visible and pages in the background don't update consistently, meaning `requestAnimationFrame` just doesn't get called sometimes.
https://github.com/modernweb-dev/web/issues/2588
This is fixable by giving each test its own window, so every test is always visible.
Definitely not an obvious workaround though, so hopefully this is something which can be fixed by default.