I have configured my device with SYSTEM_THREAD(ENABLED); and left it in the default AUTOMATIC state, I think this is the simplest way of making sure my device functions regardless of a cloud connection and to make sure it behaves I also use if (Particle.connected) before any Particle functions to make sure I don’t jam the system up attempting a Particle connection that is not possible.
I walked my unit of of range today and then as it located located a weak trace of the WiFi AP again the unit attempted to reconnect. However for whatever reason this signal was apparently too weak to properly negotiate with the cloud so I had a rapidly flashing cyan led and my code wasn’t running. I moved the unit back to where a strong signal would exist (right next to the router) but the Photon remained stuck in this rapidly flashing cyan mode. I had to reset it to restore function, this is quite difficult to replicate but I’m pretty sure weak signal was at the root of it.
So the question is how do I best handle that potential fringe case where the unit gets located in an area of very weak just about WiFi signal and ensure my code stays running?