It is a common mistake to think a interrupt will alter the program flow, but it won’t. When an interrupt occurs the ISR ( interrupt service routine ) is run and then returns to exactly the same point in the code as it was when the interrupt took place. So using an interrupt is useless for solving the problem of shorting out delays or the effects of long for loops.
Contrary to your belief we get at least one problem like this every day. And the solution is to use a state machine method when writing your code.
See https://forum.arduino.cc/t/demonstration-code-for-several-things-at-the-same-time/217158