Para hacer eso lo mejor es controlar el estado de las puertas con una variable booleana <bool> cuyos posibles valores son true(1) y false(0). Como ya has visto como se usa la función <Sleep()> y cómo funcionan los condicionales, te dejo la respuesta en pseudocódigo para que tú te encargues de pasarlo a C++.
Código:
bool puerta_abierta = true
si puerta_abierta
esperar(2 segundos)
puerta_abierta = false
Jajaja que maldad no entiendo como pseudocodigo?