ahadik:
Upon further thought, I'm not actually sure how the Blink Without Delay method could be leveraged here. My algorithm consists of a main while loop, and each pass through it might take more or less time. Therefor, I don't see how I could get a consistent time step using the Blink Without Delay strategy.
If you design the sketch using a non-blocking approach then the only time taken will be the time needed to check for possible events, and then do any processing that needs to be done as a result of those events. Typically the time needed to perform pure computation will be small (there simply isn't space on an Arduino for much code or data) so I wouldn't expect a sketch to be tied up for long periods if it was well designed. I don't know what your 'flood fill' algorithm entails or how long it will take to execute, but I would start on the assumption that the non-blocking approach can be made to work without interrupts and only fall back to the interrupt based approach if and when it proves necessary.