Interestingly  a timeout will not execute until all of the remaining code in a block has executed So if a timeout is set  and then some long running function executes  the timeout will not even start until that long running function has finished