One recent performance issue that was raised by a customer was in the end a tiny svg animation loop that was on all the time even when the tab was inactive. So no game engine loops for my customers.
SVG animation in a browser works completely differently than a game engine handles animation. SVG is based on the DOM and animating it requires mutating the DOM. Lots of string operations because everything is a string attribute. All of that has a ton of unnecessary overhead.
You actually would have been better off replacing your SVG animation with a game loop! Assuming you're using Lottie you can easily swap it to render into a `<canvas>` which doesn't have any of that overhead and uses `requestAnimationFrame` which automatically gets throttled in inactive tabs.