Doesn't seem to have completed successfully.
When it's finished, it will print "Done" and reboot, similar to this:
____ _ ____
/ __ \___ (_)__ ___ / __ \__ _ ___ ___ ____ _
/ /_/ / _ \/ / _ \/ _ \ / /_/ / ' \/ -_) _ `/ _ `/
\____/_//_/_/\___/_//_/ \____/_/_/_/\__/\_, /\_,_/
W H A T W I L L Y O U I N V E N T ? /___/"
The solution I used was to build a custom firmware with USB support compiled in and with the omega dts file modified such as to enable the u-boot and u-boot-env partitions as read/write.
Then with the O2+ in a mini-dock and dumps of the u-boot and u-boot-env from my kickstarter O2+ on a USB, I flashed the O2+ with the modified firmware and just wrote the kickstarter copies to the relevant partitions.
It was a total hack, so I have no idea whether this worked by design or I was just lucky that it worked.
Note, the officially sanctioned way to replace the bootloader is via an ethernet expansion installed in an expansion dock as documented here Firmware Flashing With Web Recovery Mode and I'd recommend anyone try that first before doing what I did.
Further, note this useful clarification regarding the documented procedure by @Pavel-Metrokhin in Bootloader for Omega2S and Omega2S+
Building the Onion software at the time I did this (Feb 2018) was a hit and miss affair, which is why I did it the way I did.
Apologies for the late reply, somehow I managed to miss your question in the past.
I'm still vague on why I might be running out of memory. I'm confused because the image size is always the same (16252928 bytes). Even for the different images on the repo site. It seems like this is normal, but I don't understand it. Perhaps the image size is always the same, regardless of what it contains. If that is true, do you (or does anyone) know how to determine what a given image contains?