How to cause a snap rollback?

Keep beta on core (for now), and release the core18 to candidate or stable, with epoch: 1.

In my mind there has to be a way to convert the snapshots. Maybe ship qemu from both 16.04 and 18.04 in a same snap? One of them could be statically linked. In any case, once you know exactly how you want to transition your users from the old world to the new, you can release a transitional epoch: 1* snap to beta that implements that. Once most of your users in beta are on that, you can release epoch: 1 snaps to beta.

What isn’t released is the stepping of an upgrade through epochs in a single refresh. Stepping slowly already works. If a user is on beta (with epoch: 0) and tries to do snap refresh --candidate to something that has epoch: 1 and there is an epoch: 1* somewhere in the channel history to bounce through, the refresh will end up on that revision (with a warning about the candidate being closed), and then a later auto-refresh (or a manual snap refresh) will get them to the wanted revision.