I'm encountering a weird bug that seems to boil down to Task.Delay or System.Threading.Sleep not waiting the full interval specified, is this normal behaviour?
System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew();
//System.Threading.Thread.Sleep(ms);
Task.Delay(ms).Wait();
var elapsed = sw.Elapsed.TotalMilliseconds;
if (elapsed < ms) {
Console.WriteLine("WTF?");
}