Buenas Pablo:
Un par de cositas. Ésta te la han comentado en el vídeo: al entrar en cada if, lo primero hacer un pixels.clear() y encender los que quieras. Por limpieza y por eficiencia.

Creo que lo mejor para resolver los ifs (no sé cómo se te ha ocurrido meter un for por ahí) es hacer un switch case (sacado de aquí: https://www.geeksforgeeks.org/using-range-switch-case-cc/):
switch (rmp){
case 0 … RPM1:
pixels.clear()
break; //si no pones este break te sigue ejecutando lo del siguente case
case RPM1 … RPM2:
pixels.clear()
//encender lo que haga falta
break;
case RPM2 … RPM3:
pixels.clear()
//encender lo que haga falta
break;
……
default: //para cuando no está en ningún rango, es decir, para las reducciones de Fran
//poner en rojo chillón
}

Si se te hace bola el case, aunque sea, pon un «else» delante de cada if para que una vez que entra por un if, no mire el resto.

el pixels.show() lo puedes poner al final del todo, antes del delay, porque siempre lo vas a ejecutar.