Существует решение для использования Web Workers, потому что они работают в отдельном процессе и не замедляются
Я написал крошечный скрипт, который можно использовать без изменений в коде - он просто переопределяет функции setTimeout, clearTimeout, setInterval, clearInterval
Просто включите его перед всем кодом