We have dessert night once a week, on Wednesdays, when they can have dessert regardless of how much they eat. Neither of my kids are big dinner eaters, and we'd had too many battles about eating a certain quantity or variety.
Other nights, often weekends, outings, etc, (maybe 1x per week) the rule is they have to eat at least half of what they are served to get dinner, because it's not dessert night. That happens maybe once a week, and they earn it about 75% of the time. We are pretty lenient about the actual qty so both sibs get dessert; we rarely give it to one but not the other (and if that does happen we split them up so its not rubbed in).
I have no issue saying no to either grandma if they ask me if they can serve dessert (at least they've learned to ask first!) and I don't want my kids to get it that night.
No issues with cake at birthday parties.