libOSTree is a great solution for this. The updates are based on crypto (sha256) can be atomic and allow for rollbacks. Yocto's meta-updater provides an easy to deploy integration of libOSTree. Even Qt has an OSTree layer.
I think OSTree has a better update model. Especially with connected devices that might have expensive cell connectivity. I don't think the rest of the stack for update infrastructure is there though. Qt does seem to be trying to build some of that out.