Converted tick IIFE to a promise based timeout cycle to alleviate blocki...

These are my initial changes. Obviously, they are breaking several unit tests because the timeout property is being set in the callback of the initial resource call.

P.S. This is my first pull request, so I'm not sure I'm doing this all correctly.