Supe hacer algo así con dos funciones:
WinExec: Para ejecutar la aplicación externa.
FindWindow: Para verificar si el formulario principal de la aplicación sigue activo.
Código Delphi
[-]
procedure EjecutarYEsperar;
var
HandleApli: HWND;
begin
WinExec(PChar('C:\Temp\pepe.exe'), SW_SHOWNORMAL);
HandleApli := 1;
while HandleApli <> 0 do
begin
HandleApli := FindWindow(Nil, PChar('pepe'));
Applicacion.ProcessMessages;
end;
...
...
end;