Delay() in main loop preventing ISR button detection

No it is totally different.
I guess it will be useful for you to read at first how non-blocking timing works
I wrote a tutorial for that too