Сделай один крон, на каждую минуту, а потом добавь в скрипт свой проверку состояния.
Так при первом вызове ты запустишь процесс и где-то сохранишь состояние. После чего, если выполняться будет долго, повторный запрос сперва проверит твое состояние, если там сказано что я еще выполняюсь, то завершит вызов, иначе выполнит .
Реализовать можешь это сам, я лично использую пакет симфонии -
LockHandler