Какая надежность вам нужна, в основном будет регулировать это. Я считаю безопасным предположить, что любая задача, которая включает в себя связь с одной или несколькими внешними системами (будь то просто электронная почта), должна выполняться с некоторой надежностью, то есть между ними постоянное хранилище.
Длительная работа - это не столько проблема, сколько то, что произойдет, если в какой-то момент вам не удастся восстановиться после сбоя. Вот почему я полагаюсь на транзакции базы данных, чтобы зафиксировать или откатить состояние рабочего процесса во время его обработки.
Я бы посчитал, что любая операция, которая потенциально может блокировать работу более чем на 2 минуты. И в зависимости от количества свободных портов завершения, которые у меня есть, я даже не хочу ждать так долго, но это больше относится к балансировке нагрузки. Сохраняйте время выполнения рабочего процесса хрустящим, но не блокирующим;)
EDIT
Эта 2-минутная вещь исходит от RFC 793, которая требует, чтобы ни один сеанс TCP не оставался бездействующим более 2 минут. Я подумал, что если моя система взаимодействует с вашей системой, и для ее завершения требуется более 2 минут, им не следует ждать завершения друг друга.