Da quello che capisco dalla richiesta, in particolare la descrizione della situazione ideale, a me sembra che non ci sia necessità di gestire i "bocciati" ma piuttosto ci sia il desiderio di evitare la presenza di utenti "bocciati" perché si auspica la riproposizione di nuovi tentativi del quiz a coloro che non hanno raggiunto un particolare punteggio entro un dato numero tentativi.
In quest'ottica, ossia evitare i "bocciati", la soluzione più semplice che posso immaginare è non configurare un numero massimo di tentativi del quiz ma piuttosto concedere tentativi illimitati. In questo modo tutti i partecipanti saranno sullo stesso piano e si potrà individuare con molta facilità chi ha dovuto utilizzare più tentativi di altri per raggiungere il punteggio richiesto. Eventualmente si può configurare un ritardo tra tentativi, invitando l'utente meno preparato a riguardare i contenuti prima di tentare di nuovo.
Se comunque si desidera che l'utente sia in qualche modo aiutato nel rivedere i contenuti, una possibilità che potrebbe essere provata è quella di rimodulare il quiz nel modulo di attività lezione, nel quale strutturare salti pagina che portino a rivedere la lezione o parti di essa in funzione delle risposte date, impedendo di raggiungere la fine della lezione qualora tutte le risposte date non fossero esatte.
Ulteriore possibilità, sempre nell'ottica di aiutare a rivedere i contenuti, potrebbe essere la duplicazione di attività svolte in sezioni precedenti in una sezione condizionata da criteri di accesso (es. aver ottenuto un punteggio "minore di"). La sezione potrebbe comparire solo a coloro che non hanno ottenuto il punteggio previsto nel quiz e potrà contenere qualsiasi attività aggiuntiva oltre a quelle duplicate, tuttavia in questo caso non stiamo mettendo tutti gli utenti sullo stesso piano e l'eventuale ciclicità all'infinito (rivedi i contenuti e rispondi alle domande ad libitum finché non passi) appare meno gestibile.