I keep thinking back to good ol' Empire Mode.
So I like the idea that individual Sites have some degree of independence and can make decisions independently. Let's say there are two Human fortresses nearby, A-burg and B-ville, that are both part of the same civilization. A-burg is wealthy, so you do a lot of trade with A-burg and boost up the friendship with your own Empire. But B-ville has poor defenses and a few resources that you really need but they don't export, so you send raiders to steal from B-ville, angering them. If the Human civ says "hey, stop picking on B-ville, we're going to war!" A-burg might say "no way, those guys are our friends!" and refuse.
There could be various effects from A-burg's refusal. A-burg might join your Empire and fight against the Human civ instead. A-burg might simply ignore the capital's request for troops and remain neutral. A-burg might erupt into riots or civil war with half the population wanting to stay and half the population wanting to go. These outcomes might be influenced by actions by the player. For example, the player could send a threatening raiding party or a caravan full of bribes or skilled negotiator to achieve a more positive outcome. The personality of A-burg's leader (mayor, baron, etc) could determine what effect the action has. For example, a prideful leader might be angered by threats, or a non-materialistic leader (i think that's a personality) might be angered by bribes.
But independence should work against the player's sites as well. For example, let's say the player does manage to annex A-burg as a result of the previous scenario. After 100 years, you might not need to trade with A-burg anymore, and the relationship begins to cool. Meanwhile, the Human civ falls under the command of a crusader king that wants to "liberate" the humans from dwarven rule, so he sends his negotiators to convince A-burg to secede from your Empire. There could be simpler causes too, for example a dwarven fortress in a savage biome might constantly request troops to keep the population safe, and get mad and secede if their requests are repeatedly ignored. I think the default state should lean toward dissatisfaction with the player, so if your dwarves create a new fortress out in the hinterlands that you never have any interaction with at all, it should eventually try to secede from your Empire. I think that would be more realistic and it would prevent the player from reaching the boring state of having completely conquered the world.