One simple way to do it would be to have dwarves emigrate when they would otherwise go insane from unhappiness. That shouldn't mess with balance too badly; at that point you've already lost the dwarf in question anyway, and dwarves could get a bad thought from having a friend leave. It reduces the chance of spirals, since you just have the leaving dwarf giving his friend an unhappy thought rather than giving a bunch of random bytanders bad thoughts from being assaulted, but I don't think that's too big of a deal and it'd be partially counterbalanced by having the leaving dwarves take a few tools and a pet or two with them.
They should still go insane if they're blocked from emigrating, too, and ideally, if a particular dwarf leaving would cause enough of his friends to leave as well, they should wait and go together and bring a bunch of extra tools ant things, like a regular embark group would. Maybe in this case they actually have a list of items that they want to bring with them, and if they don't get them in a certain amount of time they go insane anyway? This would have to be sane, embark-themed stuff though - no shells, no obscure useless stones, nothing that the player can't find or make... but it should certainly be possible for them to force the player to choose between giving up their only anvil and having a riot on their hands, or pray that they can get enough cattle slaughtered and tanned in time to provide the required amount of leather.