Варианта два:
1. Не завершать процесс, пока эти задачи не завершены. Новые задачу в работу не брать.
2. Предусмотреть, что задача может быть прервана на середине. В случае непредвиденного завершения - помечать как-нибудь и запускать с той точки, на которой остановились.
Ещё можно периодически проверять зависшие задачи и перезапускать их.