I had an undead siege and there were more necromancers than I had in my entire military never mind more zombies than I could reasonably deal with, so I turtled up. For some reason, on my map, this seems to cause them to just wander off. It's a flat area and my fort is underground with a drawbridge that closes off the outside world when it's down, rather than when it's up. The only notable surface features are open space over a brook and a couple stagnant pools that are on the level below.
There was also an animal-man on the surface who might or might not have been associated with the necromancer invasion, but who I think was coincidental. When I went out to kill that guy, it didn't lift the siege.
None of the zombies or necromancers in the invasion are around any more, but there are far more "corpse" enemies listed under the Deceased tab than I've ever actually seen, and there was a lot of "Forbidden" material in my stocks (a lot of which I have never seen in any stockpile since claiming it all).
The only big downside to this so far has been it keeps caravans from arriving.
A cyclops arrived, and again, seemed too formidable to fight so I just turtled up and let incoming guests finish it off. Other randos include some grackle men.
Version is 0.43.03.
Is there any way, using dfhack or otherwise, to determine what's continuing the "siege?" I've looked at previous threads on this issue and this may or may not be something similar to what happened in this
thread from earlier this year, although I was not able to replicate the solution in the thread.