Sketch_Restart()

Since I will already be in panic mode when i go for the reset, the extra delay is likely to panic me more.

16 milliseconds is going to panic you more? Will that extra 16 milliseconds make that much of a difference on a sailboat? Would you even be able to tell the difference between zero delay and a 16 millisecond delay?

In my experience, less code = fewer bugs. You're adding quite a bit of code to "reset" the processor. Does your plan include a method for identifying bugs in your reset code? What if your reset code does not work correctly? Will you have a "reset squared" in case your "reset" fails to work?