I've updated the bug with a systemd.log_level=debug journal.log. This sheds some light on what's going on, but I don't understand it.
The gist is that gnome-software, when clicking and confirming Restart & Update, is setting a symlink:
/system-update -> /var/lib/PackageKit/prepared-update
But somehow both dnf-system-upgrade.service and packagekit-offline-update.service pick up on its presence and start running. Packagekit starts doing the update, gets to about 6% completion, dnf then injects itself and isn't happy with the payload, goes failed, and initiates a reboot. I think that's the sequence.
But why is the same trigger being used for upgrades and updates? This might actually be a dnf bug, not a systemd/pkofflineupdate bug.
But then why aren't more people having this problem? I can't think of what's unique about my system that would cause this confusion.
--- Chris Murphy