problema risposta pulsanti/relè con potenziometro

Salve,

dopo aver risolto (grazie a PaoloP) il mio problema su come comandare la velocità di apertura/chiusura di un relè facendo in modo che i tempi "on"/"off" fossero uguali, ho proseguito con la realizzazione dello sketch per far funzionare il mio progetto.
Ora mi trovo di fronte ad un altro problema.
Assieme al relè che controllo col potenziometro devo controllare altri 3 relè, questa volta con un semplice bottone, uno per ogni relè (a progetto realizzato userò dei semplici interruttori a bilanciere o a leva).

il problema in questione consiste nel fatto che la risposta dei pulsanti che controllano gli altri relè avviene in corrispondenza del delay del potenziometro
cioè
se il potenziometro comanda al suo relè di aprire e chiudere ogni 250 millisecondi premendo il bottone che comanda uno degli altri relè questo si apre quando il relè del potenziometro viene azionato (dopo 250 millisecondi),
se il potenziometro comanda un'apertura/chiusura di 5 secondi, premendo il bottone che comanda il relè questo risponderà dopo 5 secondi.

Come posso fare a rendere indipendenti dal potenziometro gli altri relè che non sono collegati al potenziometro stesso?

Ho elaborato il mio sketch in questo modo:

const int potpin = A0; // pin potenziometro
const int bot1pin = A1; // pin bottone resistenze
const int bot2pin = A2; // pin bottone boost
const int bot3pin = A3; // pin bottone 220
const int respin = 2; // pin rele resistenze
const int pumpin = 4; // pin rele pompe
const int boostpin = 7; // pin rele boost
const int prespin = 8; // pin rele presa 220


int valpot = 0;   // valore potenziometro
int delayval = 0;  // stato del rele
int bot1state = 0 ; // stato bottone resistenze
int lastbot1state =LOW;// ultimo stato del pulsante
int bot2state = 0; // stato botone boost
int lastbot2state =LOW;// ultimo stato del pulsante
int bot3state = 0; // stato bottone presa 220
int lastbot3state =LOW;// ultimo stato del pulsante
int resstate = 0; // stato resistenze
int boostate = 0; // stato boost
int presstate =0; // stato presa 220

void setup()
{
        pinMode(potpin, INPUT);
	pinMode(bot1pin, INPUT);
        pinMode(bot2pin, INPUT);
        pinMode(bot3pin, INPUT);
        pinMode(pumpin, OUTPUT);
        pinMode(respin, OUTPUT);
        pinMode(boostpin, OUTPUT);
        pinMode(prespin, OUTPUT);

	Serial.begin(9600);
}

void loop()
{

   bot1state=digitalRead(bot1pin); // rele resistenze
   resstate=digitalRead(respin);
   if (bot1state != lastbot1state) 
   {
     digitalWrite(respin, HIGH);
   }
   else
   {
     digitalWrite(respin, LOW);
   }

{
   valpot = analogRead(potpin); // rele pompe
   delayval = map(valpot, 0, 1023, 250, 5000);
   digitalWrite(pumpin, HIGH);
   delay(delayval);
   digitalWrite(pumpin, LOW);
   delay(delayval);

   Serial.println(delayval);
}
{
  bot2state=digitalRead(bot2pin); // rele boost
   boostate=digitalRead(boostpin);
   if (bot2state != lastbot2state) 
   {
     digitalWrite(boostpin, HIGH);
   }
   else
   {
     digitalWrite(boostpin, LOW);
   }
}
{

   bot3state=digitalRead(bot3pin); // rele rele presa 220
   presstate=digitalRead(prespin);
   if (bot3state != lastbot3state) 
   {
     digitalWrite(prespin, HIGH);
   }
   else
   {
     digitalWrite(prespin, LOW);
   }

}
}

Ho provato a risolvere dando un delay pari a 0 per ogni bottone ma non è servito a nulla e non so come sbattere la testa.
Devo risolvere questo problema dato che credo me ne creerà poi quando dovrò provare inserire nello sketch una termo sonda che dovrà spegnermi un relè collegato a delle resistenze (quando queste saranno a temperature troppo elevate) e un altro "sensore" di "serbatoio vuoto" che mi dovrà fermare sia il relè delle resistenze sia il relè comandato dal potenziometro.

Ringrazio già da ora per l' aiuto che mi darete
ciao
DD