svccfg cleanup needs to suck it up and finish the job
svccfg cleanup is run after upgrades to remove obsolete services (which no longer have corresponding manifests or methods).
svccfg cleanup terminates upon the slightest provocation (e.g. encountering a property in a manifest that libscf doesn't like). This early termination leads to stale services being left in the SMF configuration, which subsequently fail (see #235).