Validate the escaped size an accepted pair will occupy in the notice.
Split from validate_goal_application_total because the two budgets answer
different questions. The raw combined check shares its budget with the
criteria model: the schema's per-field max_length values and the system
prompt's combined limit are all raw counts the model can count against
while drafting. This rendered check is acceptance-side only — the model has
no way to predict HTML expansion, so a rendered overshoot is reported to
the user, not retried.
The budget is the aggregate notice limit rather than the raw application
limit. Escaping has no meaningful worst case below fivefold expansion, and
any budget tighter than GOAL_NOTICE_TEXT_CHAR_LIMIT would reject pairs
whose notices fit. The wider budget is safe because acceptance clears the
status note on create, and the note budget stays in reserve otherwise.