JavaScript Timers: How to Freeze the Event Loop