Be', non basta mostrare una normale finestra (in un thread separato) e poi chiuderla quando termini di attendere l'altro thread? Quanto alla seconda domanda, io userei una WaitForSingleObject.