Hola escafandra.
Seguramente el comportamiento difiera por la diferente versión de S.O. ...
En
Vista, lo que me sucede es que al mostrar el form por primera vez y realizar foco sobre otra aplicación de fondo, no pierde su condición de estar al frente. Pero al repetir la acción, es decir, darle nuevamente el foco al form y luego hacer click sobre otra aplicación la pierde.
Al agregar
SWP_SHOWWINDOW como flag, se comporta como se espera. Y como detalle, del mismo modo lo hace si se agrega una lína con
BringToFront(), todo esto habiendo sido mostrado como no modal.
También había probado el condicional de tu último mensaje
Código:
if(Visible && Message.Msg == WM_KILLFOCUS || Message.Msg == WM_SHOWWINDOW)
ya que la captura me sonaba totalmente lógica, pero sin resultado (al igual que otras pruebas que intenté).
Un saludo.