When I think of a puppet city vs an annex, I picture Copenhagen vs Paris in WW2. Neither were happy, but the Danes were happier about the situation. Germany got all of the economic benefits from Denmark (mostly agricultural surplus, which they would have gotten anyways...Denmark needed the export trade, and there was no means to sell it anywhere else)
However, Copenhagen remained largely autonomous, and as a whole, wasted as many Reichmarks as possible through sabotage and inefficiency without actually inciting the Germans to fully annex the city. After a few years, they were almost in open revolt.
What if the unhappiness from puppets slowly grew over time until it was the same level as that of an annexed city? (A separate "unhappiness from puppets" entry) Once it hits the same level as an annex, you can no longer keep it a puppet, and you get an option to either:
1) Annex it
2) Raze it
3) Return it to its original owner
This would make puppeting a temporary measure. What would be a reasonable unhappiness growth rate?