Driftless setInterval replacement, and timer utility