#35524 [Bug]: Budget reservation is skipped when request cost cannot be estimated
### Summary
The optimistic budget reservation path returns without reserving anything when it cannot estimate a positive maximum request cost. This is explicit current behavior, but it leaves configured budgets exposed to concurrent overspend for routes or models whose cost cannot be estimated before dispatch
### Current behavior
`litellm/proxy/spend_tracking/budget_reservation.py` calls `estimate_request_max_cost()` from `reserve_budget_for_request()`. If the model is unknown to the cost map, the request has no token-priced cost fields, or the request is an image or audio route that the estimator cannot price, the function returns `None`. `reserve_budget_for_request()` then returns without creating a reservation
The source comment describes this as falling back to read-time enforcement. Read-time checks are not an atomic admission decision, so concurrent requests can all observe the same spend before any of their final spend updates are committed
The `fail_closed_budget_enforcement` setting does not change this missing-estimate branch because it handles failures while reading or reserving a known counter, not the absence of an estimate
### Reproduction
Configure a key, team…