automate setTimeout housekeeping

@zaach, @vladikoff - wanna have a look?

fixes #1010 
Another case for `wrapAssertion`. If the assert fails it will throw before done is called.