Il problema è che stai confrontando delle stringhe, non dei numeri.
In una stringa, 1 viene prima di qualsiasi altro numero eccetto lo 0, quindi la condizione >= 61% E <= 100% non sarà mai vera perché la stringa 100% viene prima della stringa 61%

Metti di avere 84%, risulta correttamente >= di 61%, ma non è <= di 100% perché 1 viene prima di 8, quindi 100%<84%

Soluzioni:
1) da $percentuale_pdf togli % con str_replace() e togli % anche dagli if, così hai effettivamente dei confronti tra numeri

2) cambi i confronti in
Codice PHP:
if ($percentuale_pdf <= "29%") { 
    
// qui danger 
}
else if (
$percentuale_pdf <= "60%") { 
    
// qui warning
}
else { 
    
// qui success

Purché la percentuale 0% o 0,...% non sia possibile, altrimenti ti darebbe success

3) per il confronto usi strnatcmp()