Dormir y esperar en JavaScript

Con más de la mitad de la década de experiencia en programación de JavaScript, nunca usé la funcionalidad de 'suspensión' en JavaScript hasta hace poco.

Para mi sorpresa, no existe tal función en JavaScript, en comparación, hay una función de suspensión en PHP e hilos en Java.
Me sorprendió aún más cuando no lo encontré en jQuery, aunque hay muchos complementos de cuenta regresiva.
Todo lo que necesitaba hacer era una cuenta regresiva simple de 10 a 0 segundos con redireccionamiento que es intuitivo de hacer con un bucle y un algoritmo de suspensión (número de segundos).

Afortunadamente, JavaScript tiene la función window.setTimeout y pude usarla en función recursiva con condición.
Aquí está mi código sin usar jQuery:

var i=10;
Countdown();

function Countdown() {	
    document.getElementById('countdown').innerHTML=i;					
	if (i>0) {
        i--;
	    window.setTimeout(function (){Countdown();},1000);
	}
	else {
		window.location="http://webapplog.com";
	}
}