Cómo retrasar sin congelar - Inno Setup

Hola, me gustaría saber cómo puedo retrasar un trabajo (o un comando) durante un tiempo especificado en Inno Setup Pascal Script.

El construido enSleep(const Milliseconds: LongInt) congela todo el trabajo mientras duerme.

Y la siguiente función que implementé también hace que el WizardForm no responda pero no se congele como está incorporadoSleep() Función.

procedure SleepEx(const MilliSeconds: LongInt);
begin
  ShellExec('Open', 'Timeout.exe', '/T ' + IntToStr(MilliSeconds div 1000), '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
end;

Yo tambien leoesta, pero no puedo pensar cómo usarlo en mi función.

Me gusta saber cómo puedo usarWaitForSingleObject en estoSleepEx Función.

Gracias de antemano por tu ayuda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta