Use an actual clock for time tracking, currentThreadTimeMillis() gives execution time for this thread only (aka, wait() loops don't increment the clock)