lifecycle: clean up callback mutation code
slide@1.1.6

Rollback will only happen after all the tasks in flight are complete.
Defer rollbacks to end of install.

This ought to nail the ENOENT issues we're seeing in #6043 by deferring
all rollback unbuilds to the end of the install process. This also
depends on the upgrade to slide@1.1.6.

The test lives on master, but wasn't ported to this branch.