*/10 * * * * root [ условие ] || timeout -k 1m 10m 900 ansible-pull $OPTS
Все должно работать, главное правильно задать условие.
ps fax || grep "процесс" -eq 0
не должно срабатывать в вашем случае, так как крон запускает ps без терминала, и от имени root юзера - не факт, что fax процессы при этом отобразятся. Можете просто в кроне поставить ps fax > $HOME/temp.txt и посмотреть в списке процессов результат.
То есть вам нужно или ps -xa или, что еще лучше, сделать проверку по PID файлу (скрипт должен это уметь).