After reading the button to delay the execution without stopping action before a

This is not how it should be done

  if (val_1 == LOW)
  {
    stepper.runSpeed();   //I want to continue this action until val_1 == hight plus a certain time delay
  }

The call to runSpeed() should be in loop() and not inside any qualifying code. It should be called as often as possible. There is no need to stop calling it - when the stepper reaches its destination it won't move.

...R