Spooky thing is that I had spotted this gem from @bko (the bit that starts "One thing that trips ..." last night:
which got me thinking - the evidence (returning to safe mode) was pointing to what @bko was saying.
So tried this:
Flashed firmware 0.8.0-rc.1 via DFU (ie back to a known position)
Safe Mode
Recompiled app against 0.8.0-rc.1 to and flashed new app v3.10.0 via OTA
Safe mode <=== BAD
Then tried @ScruffR suggestion:
Flashed bootloader-0.8.0-rc.1-photon via SERIAL
It reset (good) to breathing CYAN! But app was not running
Flashed flashed new app v3.10.0 built against 0.8.0-rc.1 via OTA
Breathing CYAN and app running! <=== SUCCESS
Lessons:
- Beware of system and app mismatch
- Beware of system and bootloader mismatch
- Back to safe mode is indicative of a mismatch
- When saving app binary files, include the system version, eg "0.8.0-rc.1+APP-3v100.bin"
- Persistence
- Ask for help!
So, case closed with thanks to the team!