Dosificador Comida Gatos - como añadir función a un botón

Hola a todos!
He creado un dispensador de comida para gatos muy sencillito y lleva unos 3 meses funcionando perfectamente. El loop de código dura 24h. Básicamente es un servo moviéndose de lado a lado entre delays.

Quiero añadir un botón que, al pulsarlo, realice un movimiento de servo extra sin afectar al loop. Como si pausara el delay, realizase la acción y volviera a el punto de delay donde he presionado el botón.
He probado con "if, else" pero solo consigo que realice la acción al finalizar el loop.

Soy bastante novato asi que seguro que se me escapa algo muy lógico pero llevo dias surfeando y no encuentro la solución. Si alguien se anima se lo agradezco!

El delay() paraliza al Arduino y ninguna otra acción sera posible durante ese periodo. Debes usar millis() o la libreria RTClib que te permite dejar que el loop() continúe dando vueltas vigilando si se pulso el botón mediante un if() por ejemplo y también preguntar si el tiempo de cumplió.

Para saber mas consulta diferencia entre usar delay() y millis()

void loop(){
   if (boton){
      //accion de boton pulsado
   }
   if (tiempo){
      //accion de tiempo cumplido
   }
}