There are probably some triggers you could script like population size, but would it - especially in the case of the Romani - really 'work'?

What I mean by that is the game doesn't distinguish between citizen, non-citizen, and slave populations. I suppose that something could be scripted where so much percentage of every population enslaved is calculated and 'banked' until another event triggers a large revolt. With those banked a sort of Spartacus-type revolt could ensue with large stacks of a slave levies lead by gladiator troops.

Another possibility is that if the faction leader makes some 'poor decisions' or if the faction finds itself losing battles and territory a family member turned pretender could appear.