Во-первых, если вы работаете в Windows, вы должны знать, что разрешение таймера составляет около 15,6 миллисекунд.
Во-вторых, ваш пустой цикл из 1M итераций, скорее всего, будет удален компилятором, и, что более важно, не может быть прерван ни одним таймаутом.