Por si te sirve de algo, este es el código que uso habitualmente para que se cierre sin problemas cuando uso un trxtrayicon
Código:
procedure TFmain.WMQueryEndSession(var Message: TMessage); //message WM_QUERYENDSESSION;
begin
Message.Result := 1; // 1=s�apagar 0=no,no apagar
canClose := True;
//
Halt( Message.Result );
Close; // no creo que llegue a este close.
//
end;