Every update I clone the current boot environment, execute it as a jail, run upgrades in there, and then once upgrades finish I set it to "boot just once", all using the built in bectl. At no point during an upgrade is the running OS in an inconsistent state. Powerloss during upgrade? no problem, since it wasn't activated yet your server comes up with the previous version. And you can either junk the partial upgraded env and start over, or jail it again and continue.
I only wish laptop support was a bit better. But since my laptop is more of a pet, at least it can have Void.