Question about the external Interrupt ??

You can guarantee that polling will work if you have an interrupt routine that just sets a flag - then you poll for the flag. However slow the polling it will eventually spot that something happened because the polling code is the only code that will clear the flag.

If you put delays into an interrupt routine you will hold up the entire system which will lead to all sorts of problems - keep interrupt handlers to the minimum - pass off any heavy lifting to loop().