I think Paradox has the solution to the problem with the "add wargoal" mechanic.
I.e. you declare war with a specific CB
win. capture your target have the score tick to a 100% where you can take the wargoal, whatever. if you want to continue, you need TO ADD ANOTHER WAR GOAL
cost of wargoal addition: AE, WarExhaustion and reduction on warscore to 0%. However, if you achieve your next wargoal, you get the warsocre ticking to 100% again. And so on.
Then, it should be impossible to take significant additional land (in addition to wargoal) even with the 100% warscore, release vassals should be unavailable etc.
For example:
P(layer) declares on A a war with a Conquest CB for province X.
Player beats some armies, sieges and occupies X.
Within a year, even if nothing else happens, the war score ticks to a 100%, however, the player may take the province X (at 30% war score cost), demand alliance annullment, demand cash demand exit from coalition and that is it. no more options.
Let us assume the player wants to extend the fighting and capture provinces Y and Z in addition X.
Player: add wargoal conquer Y (AE =4xBastetaxY, WarExhaustion = BasteTaxY/2), add wargoal Z
With the NEW wargoal not achieved, the Wargoal score is reduced to 0% (battle and occupation warscore is left) and the ticking begins once the player already has occupied the provinces Y and Z.
Now there should also be a WarExhaustion discount and AE penalty on numerous wargoals if added at the time of initial declaration; there should be a WE penalty for adding additional wargoals if already in a war. I suppose there should also be a AE and "Trust" penalty if you add wargoals you have already achieved.
How is that for a mechanic? Would encourage specific war objectives and prior planning...