> ここで期待通りにならないのは、アプリケーション終了時にth_event.SetEvent()を
> やっているにもかかわらず、
> ※1を実行しないため、※2も※3も実行せずに
> アプリケーションが終了してしまう点です。
> 通信している最中はちゃんと※1を実行します。
> WaitCommEvent()で処理が固まっている時はth_event.SetEvent()
> を検知できないのでしょうか。

サンプルプログラム TTY.C をご覧になれば
解決すると思いますが。