Async aware setInterval. Run functions at an interval without overlapping previous calls.