A quanto ho capito questo problema è dovuto in sostanza al fatto che la funzione del thread usa metodi e variabili membro dell'oggetto CMyDlg, il quale però è fermo alla funzione WaitForSingleObject che ha parametro INFINITE, quindi il thread non riesce a proseguire perché i suoi messaggi a CMyDlg sono bloccati.