Ahora queda ir probando cada parte...
1- Prueba quitando las partes de MUTEX.
2- Otra cosa que se me ocurre es que se esté tratando de mostrar algo "demasiado pronto". Pon una pausa donde pones el ShowMessage.
Por ejemplo:
Código Delphi
[-]
with Application do
begin
if (ShortDateFormat = 'M/d/yyyy') then
begin
ShortDateFormat:='MM/dd/yyyy';
end;
Application.ProcessMessages;
CreateForm(TDMFJoya, DMFJoya);
CreateForm(TDM, DM);
CreateForm(TFMain, FMain);
3- También deberías probar moviendo la parte donde das formato a ShortDateFormat mas abajo. Puede que esto no sea ThreadSafe.