Your code is blocking, and that is why you can't get things to work like you want to.I can't tell you why your code is blocking, because you didn't post it (you're just flashing a part of your code as if you're teasing (doesn't work for me though)).

But because you are telling us that the part in an if statement takes a full minute, i'm sure there is a blocking code in there.If you use non blocking code, the loop function will be run hundreds of times per second, if not thousands.You can decide to keep doing what you are doing, or to do your "instant stop" during one of these runs.That would in fact be a near instant stop, so in some cases you might feel the need to repair something after registering a stop was requested.But that's for later, first the blocking needs to be addressed.

Blocking code contains delay() or while.. most of the times, there might be other ways to block and you need to learn how to avoid that.You can start by practicing the "blink without delay" sketch, and start understanding how and why that works.