I thought I should add the OakBoot bit to the discussion as that would help explain how the Oak decides to go into safe mode or into the user rom.
Yes, the Oaks memory is divided into multiple slots. How many I can't remember. if you were to say three (or four) slots, the safe mode firmware occupies slot #1, the firmware for your current running sketch occupies slot #2, and the next sketch you download goes into slot #3, and then becomes the active slot. This means slots 2 & 3 alternate between being the currently running sketch and the one being downloaded. This is how when a sketch download fails the Oak can reboot and go back to the last sketch you loaded onto it.
I was going to mention the Default, Manual and No Safe Mode options in my last reply, but thought I'd keep it short and sweet to keep it on topic. But yes, your summary is pretty much it.
Default will cause the Oak to reboot into safe mode if the wireless is down for more than a few minutes, looses it's connection to particle, or your code encounters a nasty error that doesn't lock the Oak up entirely which it can reboot out of, and of course the P1 to GND jumper on power up.
The Manual Config mode takes the wireless connection (and particle connection??) safe mode triggers out of the equation, meaning it is only code errors and the P1 to GND that should trigger it.
The No Safe mode option does appear to entirely disable safe mode, and you can't even do a P1 -GND power-on trigger. I need this for one of my Oaks, out of the five I have have running 1.0.5, it is being a problem child and keeps rebooting into safe mode with no apparent reason (it has always been a problem child though, so it doesn't really surprise me). After I put the No Safe mode variant on, it appears the only way I'll be able to re-enable safe mode is to follow the OakRestore or forced serial update instructions to do a 'factory restore' of the Oak. EDIT: This is only if the Oak crashes. As long as OTA programming is still working, you can upload a new program to the Oak with one of normal safe mode options, and it will be re-enabled.
I usually run all my Oaks in Manual Config mode as they are independently powered, meaning they will remain online when there is a power or internet outage, and I don't want them to all reboot into safe mode and make me have to go upload their programs to them again to get them to start working again.
And yes, that is probably a good idea... some sort of overview of the Oak memory structure and configuration options is indeed needed on the Wiki!
