deep recursion
Introduce callSoon() implementation. Patch tests to use waitFor() instead of asyncCheck()