Me temo que llego muy tarde con mi respuesta, pero la publico por si pudiera servir a alguien mas, y por que no, a vos si no lo has resuelto, ya que ahora, investigando un poco sobre "espiar" un directorio, llegué a este hilo.
La naturaleza de las llamadas a funciones Wait* del API... es esa, esperar (de allí su nombre)
Si pretendes tener una aplicación que trabaje "normal", mientras espera, lo que podes hacer es invocar a la función wait en un hilo secundario, y que este notifique al hilo principal cuando el objeto (u objetos) que estas "esperando" son señalados.
Encontré un componente que hace precisamente esto sobre un directorio. No lo he probado, pero viendo el código, parece que funcionará, así que te dejo una liga para que podas probarlo por vos mismo.
http://www.angusj.com/delphi/dirwatch.html
Un saludo