umm... how is that imprecise.

  1. timeout <= Zero, then we only wait once.
  2. if timeout > Zero, we will try and wait in multiple of 250ms

we could have made Sleep be precise about the final remainder ..  I am sure one could implement with DateTime.Now.  BTW i just follow on existing codes.  https://github.com/projectkudu/kudu/blob/master/Kudu.Core/Infrastructure/LockFile.cs#L129