Backup existing firmware

The Core does not have a separate device OS module. Its firmware is monolithic.
That means when you build your application against a particular device OS version the resulting binary will contain both Device OS and Application firmware.
...
Hence, build the binary and download it and back it up.

Oh! Well that's nice to know, I do have the built application firmware saved from the web IDE, so I guess that means i have the deviceOS backed up as well. I must have missed that in wherever it was documented (perhaps it could be mentioned on deviceOS release posts?), thankyou.

That’s an indication that the code may have some flaws that don’t survive the stricter scrutiny of the more advanced/stable versions.

Quite possibly - I didn't write it, and to be honest, if it works (with an old deviceOS), I don't have the time to spend debugging it.
That said the investigation I did do found that this behaviour was caused by 6 lines in the code:

        UDP udp;
        udp.begin(port);
        udp.beginPacket(broadcastIP, port);
        udp.write(contents, sizeof contents);
        udp.endPacket();
        udp.stop();

It seems as though UDP broadcasts had ongoing issues with the Core. I've modified the code with all the 'success' tips i've found - enclosing the code in an if(WiFi.ready()), reading any echoed packets back, adding delays, but with no change in behaviour. Notably it crashes on the first loop() invocation, so this code never even runs, leaving me rather puzzled. But as they say, if 0.5.4 ain't broke, don't fix it.