すみません、メニューのIDに存在しないIDを入れていました。
NULLとしたらちゃんと子ウィンドウの WM_CREATE まで入りました。
が、この WM_CREATE 内で試しに無限ループさせてみたところ
アプリケーション起動時にフリーズしました。

WM_CREATE:
int i = 0; // デバッグでここにすら到達する前にフリーズしました
while (1)
i++;

別スレッドでウィンドウを作ったはずなのですが・・・