@Paul_M, the SOS 10 can be caused by a function that doesn’t return a value as required. This is common in older code that did not return an integer value in a Particle.function(). The latest compiler now catches this at compile time but older versions were caught at runtime with an SOS 10. You may want to check your code.
As for your “stuck” Boron, you can put it in Safe mode and flash tinker to it to gain control again. You can also do it via DFU and flash tinker using the CLI.
Good theory, but that’s not it. This was flashed days ago on Web IDE with all functions unquestionably returning. And holding down the buttons to boot in safe /DFU mode does not work. This is a low level hardware failure that seems not to have an explanation of cause on the forum. Maybe the cellular modem blew but not the main micro? Then when I went to replace it, the U.Fl connector of another Boron ripped off the PCB when I went to detach the antenna adaptor. I really wish the Boron had more robust hardware even if it mean an extra $30 cost