Uma solução simples é alterar um pouco a sua lógica:
i=1;
while [ "$i" -le 10 ]; do
if [ condition1 -le condition2 ]; do
#>>> Submit jobs
## Increment the value of $i if a job was submitted
i=$((i+1))
else
# SERVER IS FULL
#
# Wait 10min and try again, by returning to start of the loop
# with the current value of $i intact
sleep 10m
done
Dessa forma, $i
só será incrementado quando um trabalho for enviado. Se o servidor estiver cheio, o script aguardará 10 minutos e será repetido com o mesmo valor de $i
.