Problema a leggere seriale mentre viene eseguito codice

Salve ho un problema, ho una griglia con 25 led ws2812b, i vari effetti funzionano e non ci sono problemi legati ai led o agli effetti, in pratica invio dei comandi da arduino per cambiare effetto e fin qui tutto ok, il problema è che per cambiare effetto devo aspettare che finisca quello prima
Da come vedrete nel codice ho provato con una libreria che simula il multithread maho lo stesso problema

#include <Adafruit_NeoPixel.h>
#include <MultiTasking.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6
TaskList MultyWork;
String c;
String vel;
int velo = 20;
String mode;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(25, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  Serial.begin(115200);
  strip.show();
  MultyWork.setTimer( newTasks, 10, 1 );
  MultyWork.startTasks();
}

void newTasks() {
  MultyWork.addThread( Controlmode );
  MultyWork.addThread( ReceivedMode );
}

void loop() {
}

void ReceivedMode() {
  c = Serial.readString();

  if (c.endsWith("#") ) {
    vel = c.substring(0, c.length() - 1);
    velo = vel.toInt();
    velo = 501 - velo;
    Serial.println(vel);
  }
  if (c == "Rainbow")  {
    mode = c;
    Serial.println(c);
  }
  if (c == "RainbowL")  {
    mode = c;
    Serial.println(c);
  }
  if (c == "Line")  {
    mode = c;
    Serial.println(c);
  }
  if (c == "Diamond")  {
    mode = c;
    Serial.println(c);
  }
}

void Controlmode() {
  if (mode == "Rainbow") {
    rainbow(velo);
  }
  if (mode == "RainbowL") {
    rainbowCycle(velo);
  }
  if (mode == "Line") {
    colorWipe(strip.Color(255, 0, 0), velo); // Red
    colorWipe(strip.Color(0, 255, 0), velo); // Green
    colorWipe(strip.Color(0, 0, 255), velo); // Blue
  }
  if (mode == "Diamond") {
    theaterChaseRainbow(velo);
  }
}

Vorrei che anche se un effetto è in funzione e si trova a metà, quando cambio effetto, l’effetto corrente si ferma e parte un altro effetto

L’applicazione su android da come si vede da codice invia semplicemente il nome dell’effetto o la velocità