Разгледайте този урок за транзакции със ЗНП.
По принцип увийте дългосрочния код в:
$dbh->beginTransaction();
...
$dbh->commit();
И съгласно тази страница с документ за PDO :
"Когато скриптът приключи или когато връзката е на път да бъде затворена, ако имате неизпълнена транзакция, PDO автоматично ще я върне обратно."
Така ще загубите транзакцията, която е била в очакване, когато времето за изчакване на скрипта е изтекло.
Но наистина, трябва да преработите това, така че да не зависи от това, че скриптът ще остане жив.