@anarbus в глобальной переменной укажите время окончания работы, и пусть каждый поток периодически проверяет, не вышло ли это время, если вышло - завершить работу. А в асинхронной функции можно установить жесткий останов скрипта, если время превышено вдвое, например. Хотя, если всё отлажено, то асинхронка и не нужна.
Почему в быстром воспроизведении скрипта, первый профиль сохраняется "битым" ?
-
Беру 2 txt файла куков. И делаю из них профили (для ютуб) в цикле.
Если включить скрипт в режиме автоплей (автоматом-быстро) то первый профиль получается не валидным, а второй (последний) валидный.

Но если руками "прощёлкать" (естественно медленее ), то оба профиля сохраняются валидными (заходит ими на их акки в ютуб)

Где задержка нужна?
-
Вывод, где то неуспевает сохранять. Поставь небольшие паузы.