Reworked timer code to use setTimeout instead of setInterval, and to auto-correct timeouts using process.hrtime.