add reasonable hang timeout
tests should never run for more than a reasonable amount of time; else the test is not a unit test
use a correct comparison to time and assert that delegates should be done
handle traps