Wait 5 seconds after button push then loop

Thank you guys,
Robin's guidance got me on the right track and I believe that now that code does what I wanted to.

The feeder should be started by finger button and hand guided, at least for the moment, later I will add a relay that will start the process, but the code should be pretty much the same.

Thank you arduin_ologist for the very clear drawing, I have not been able to find a similar project to get inspired from, maybe I didn't dig enough yet, thank you for your help.

I would also have another question. The machine has a low and a high current and my plan is to try to feed wire when the current is high. I can adjust the preheating time and the pulse width and frequency. I will try to start from one pulse per second and adjust the preheat time and const int from the code until I can make a correlation.
I know that this should be electronically done but at the moment it is out of my reach.
My question is, from your experience, how much constant is the Arduino and time interval after the loop start.
Sorry if this is a stupid question.

and here is what I have been able to make with the code until now, I guess for you is a mess, but it works.

unsigned long currentMillis;
unsigned long movingMillis;
unsigned long pausedMillis;
unsigned long heatingMillis;
const long feed = 1000;
const long stopfeed = 1000;
const long heating = 3000;
const int motorPin = 9;
const int buttonPin = 4; // the pin number for the button

enum motorStateENUM {
    WARMING_UP,
    MOVING,
    PAUSED,
    OFF,
};

motorStateENUM motorState = WARMING_UP;

//==========
void setup() {
      pinMode(motorPin, OUTPUT);
     pinMode(buttonPin, INPUT_PULLUP);
    Serial.begin(115200);
}

//==========
void loop() {
    currentMillis = millis();

{
  if (digitalRead(buttonPin) == LOW)  {
        if (motorState == OFF) {
          if (currentMillis - heatingMillis >= heating) {
          motorState = WARMING_UP;
        motorState = MOVING;   
        Serial.println("WARMING");
        }}}

    if (motorState == MOVING) {
        if (currentMillis - pausedMillis >= stopfeed) {
          Serial.println("MOVING");
          movingMillis = currentMillis;
            motorState = PAUSED;
        }}

     if (motorState == PAUSED) {
        if (currentMillis - movingMillis >= feed)
        {
          Serial.println("PAUSE");
          pausedMillis = currentMillis;
            motorState = MOVING;

        }
    }
 
  if (digitalRead(buttonPin) != LOW)
  {
    motorState = OFF ;
    heatingMillis = currentMillis;
    Serial.println("OFF");
    }}
 }

Thank you