It's imprecise because it doesn't account for time spent between the sleeps. In this case it probably doesn't matter because it doesn't do much, but generally, it's best to have a fixed time reference point if you want a precise timeout.