That's the obvious solution, but it has one major flaw in that it's difficult to ensure that the initial time is set properly.
Let's see if I can explain this. Take the case where I have several time consuming steps, the third of which is the loop that I want to provide with a timeout. If I just wire up a TickCount function (to provide initial time) outside the loop then the initial time will get set to the point that the entire VI starts, not the time that the loop starts.
I suppose I could solve this with sequence structures but I *hate* sequence structures since they make it very difficult to read the code...