Right now the very fist fetch() happens right after Fetcher instance is created, which might be while a lot of other components are still being created. Wrap it inside requestAnimationFrame so it's executed once the browser is (fairly) idle
Refactor the timer so instead of calling fetch directly every seconds we call it every 1 second, check if we could & should fetch (fetch isn't already/still in progress and seconds passed since last fetch) and if needed call fetch.
This will also allow us to pause fetches when user is interacting with alerts so there's no whack-a-mole with buttons