Would tiered goals help with this? Goal 1 against a maximum spend of $50 in a particular category, goal 2 against a maximum spend of $75 in the same category? Then if you miss the first for some reason, you’ve still got an incentive not to go completely wild, as the second is protecting you against that?
For the overspend because of new need, perhaps you could set them against a budget, but leave that budget number out of the goal? Then you could have:
goal 1: do not spend more than budget for category X
goal 2: do not spend more than budget+15% for category X
Your target budget can adjust if you have a new need (perhaps with some rules like the total amount has to balance, and you can only adjust budgets on a strict schedule).