Как зациклить выполнение функции, пока не нажата другая кнопка на пульте?
Доброй ночи.
Запоминайте состояние в глобальной переменной.int mode = 0xFF2AD5;
void loop() {

    if(irrecv.decode(&results)) { //-- Обработку нажатия лучше вообще вынести в прерывание и не использовать delay()
      mode =  results.value;
      irrecv.resume();
    }

    switch(mode) {
      case 0xFFB24D: modeBlinkRed(); break;
      case 0xFF6897: modeBlinkGreen(); break;
      case 0xFF2AD5:  modeBlinkAll();  break;
    }      
}
Есть отличный язык - граф состояний. Советую посмотреть одну из реализаций на Матлабе - Управляющая логика (StateFlow). On-line курс (надо устанавливать MatLab, Simulink и StateFlow).
Затем можно получить код для Ардуино.