Чтобы не запускался скрипт до окончания можно в начало каждого дописать адаптировав под себя
exec("ps -U #user# -u #user# u", $output, $result);
foreach ($output AS $line) if(strpos($line, "you_one_of_six_script.php")) die ......; //прошлое задание еще работает
Еще можно проверять запущен ли скрипт по крону, и выполнять это проверку только на работающий скрипт для крона. Можно писать каждому скрипту временный файл(или в базу) время его запуска(время, чтобы если скрипт крашнулся и не удалил файл, удалить его) , и удалять этот файл по завершении скрипта. А при запуске проверять наличие и выходить если есть файл.
Это поможет в том случае, если причина в в большом количестве запущенных скриптов, которые копятся как снежный ком не успевая отрабатывать.