Yes, it had failed to blow the image.
All good now.
When I am using the web UI, I get a swirling useless progress indicator (why no proper percentage-done indicator, byte count, clock or growing bar) and that just goes on for ever and ever. Eventually I try hitting refresh. Then nothing much of significance is displayed, just the normal main web page. But it I go back into the upgrade page in the menus, it then immediately says "rebooting" and then no feedback again either, just sits there, so in the end when you do yet another refresh you see the login prompt which shows it has indeed rebooted. Booting still takes an eternity. In fact I know it has booted when an SMS or a Tweet arrives from AA telling me that it has connected to the internet! So anyway, this is how I have managed to screw up upgrades in the past, a lot of guesswork about what is going on. I just need to learn to follow a strict reflashing routine that works.
Logging in to the modem’s usual admin UI programmatically via http might be a bit of a pain, would have to look into it, but if I sorted that out, I could perhaps write a Shortcuts/Workflow program to reliably blow these modems. (I did write a very successful Workflow thing to push a new config into the Firebrick, and optionally tell it to reboot it too.)