Advanced Windowsに、
「GUI関係の仕事が無い時、GetMessageはスレッドを眠らせる」
とあるんですが、内部的にはWaitForSingleObjectしてると考えて
良いのでしょうか?

というのは、ウィンドウを必要としないスレッド間(別プロセス)で
同期とって作業しようと思っていて、
(a) イベントオブジェクト(とか) + WaitForSingleObject
(b) あえてウィンドウ作成(不可視) + SendMessage
なんかを思いついたんすけど、(b)を選ぶメリットってあるのかなー
と思っておるのです。(内部動作が等価なら、あえて選ぶ必要はなさそう)