Be careful about the duration of timeouts that you set in tests. These add to the time that it takes to run the tests, and it can add up over a whole test suite. In general, a timeout of 0 is adequate to ensure that something is executed outside of the current synchronous execution, and multiple timeouts that are added at 0 duration are put into a queue, so you don't need to set different time values to achieve sequential execution. Basically, just use 0 in almost all cases.