Gaffe à la différence entre "sleep(unsigned seconds)" et "Sleep(DWORD dwMilliseconds)". Le premier fait partie d'une lib "standard" C et le second est un appel à l'API Win32.
Pour le premier (sleep) on peut imaginer que les conceptUeurs de la lib ont bien fait leur boulot et ne bouffent pas tout le CPU à attendre. Le second signale au système de ne plus donner de temps CPU au thread avant la fin de la tempo et donc ne prend pas de ressources, au contraire.