ttp://msdn.microsoft.com/en-us/library/ms633546.aspx
> If the target window is owned by the current process,
> SetWindowText causes a WM_SETTEXT message to be sent to the specified window or control.

SetWindowTextはWM_SETTEXTをsendしようとするが
ダイアログを所有するメインスレッドがメッセージを受け取れる状態ではないので
SetWindowTextから返って来なくなる。
メインスレッド→WaitForSingleObjectで待つ(メッセージを受け取れる状態ではない)
別スレッド→メインスレッドがメッセージを処理するのを待つ
となり、デッドロックに陥る。

Sleepを抜くと通るのは、スレッドがwhileループに入る前にisContLoop = 0;が実行され
SetWindowTextが呼ばれないため。

ttp://msdn.microsoft.com/en-us/library/ms644927.aspx
この辺読むといいよ。