Я тоже редко что-то новое (для себя) делаю в NSIS. Немного изменил числовые параметры вашего примера. Меня все устраивает и ждать ничего не нужно. В итоге я имею отслеживание запущенного процесса во время отсчета таймера и отображение обратного отсчета таймера над прогресбаром.
Скриншот и сценарий
Код:

Unicode true
!include "MUI2.nsh"
!include "Logiclib.nsh"
!include "ProcessFunc.nsh"
!include "FileFunc.nsh"
Var datetime
Var BackupDir
Var SourseDir
Name "SomeAPP Saver"
OutFile "SomeAPP.Saver.exe"
InstallDir "D:\SomeAPP\"
ShowInstDetails show
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
RequestExecutionLevel admin
!macro backupLoop
Loop:
${If} ${ProcessExists} "SomeAPP.exe"
; дата и текущее значение времени в формате ГГГГ ММ ДД ДН ЧЧ ММ СС
${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6
; MessageBox MB_OK|MB_ICONEXCLAMATION "$0 $1 $2 $3 $4 $5 $6"
; дата в формате YYYY-MM-DD_HH-MM для имени папки
StrCpy $datetime "$2-$1-$0_$4-$5"
; Создание папки с меткой даты текущего времени
StrCpy $BackupDir "$LOCALAPPDATA\SomeAPP\Saved\$datetime_SomeAPPSaved"
CreateDirectory $BackupDir
; Создание резервной копии папки 'SomeAPPSaved' в родительской папке
StrCpy $SourseDir "$LOCALAPPDATA\SomeAPP\Saved\SomeAPPSaved\*"
CopyFiles /SILENT "$SourseDir" "$BackupDir"
; Код Salmo вместо Sleep 600000 - 10 минут интервал повтора резервирования
StrCpy $7 600 ; количество отсчетов Sleep
next:
Sleep 1000 ; интервал отсчета 1 сек.
${FindProcessName} "SomeAPP.exe" $8
StrCmp $8 "1" 0 skip
IntOp $7 $7 - 1
; Обратный отсчет таймера над прогресбаром
SetDetailsPrint textonly
DetailPrint "До создания следующей резервной копии осталось $7 сек..."
SetDetailsPrint listonly
StrCmp $7 0 0 next
skip:
${Else}
Goto done
${EndIf}
Goto Loop
done:
!macroend
Section
Exec "$INSTDIR\SomeAPP.exe"
${If} ${ProcessExists} "SomeAPP.exe"
!insertmacro backupLoop
Goto done1
${Else}
done1:
ExecShell "open" "$LOCALAPPDATA\SomeAPP\Saved"
${EndIf}
Quit
SectionEnd
Function .onVerifyInstDir
IfFileExists "$INSTDIR\SomeAPP.exe" PathGood
Abort
PathGood:
FunctionEnd