What should happen is that when you insert your card it asks Monzo does this person have £99 quid available, it goes yes, or nope but they have £x, or nope if £0.
The pump then either says max £99 (or a partial amount of they have less available) or cancelled.
Once it finishes the pump should then immediately make a second request with the actual amount so you aren’t left with £99 pending.
However in reality I think it’s still the case <1% actually follow the spec set out years ago.
So most are still auth and holding £1 pending for a few days and then it actual is sent days later.
Whenever you buy something that’s like a coffee where you are present and being handed the goods it’s a single transaction (auth+capture). With something like fuel where it could be any amount it’s split into two an auth (to check and hold the amount) which gives back a token that’s later used to then capture the amount once known.
The auth and hold of a specific amount just means the pump knows they will good for that amount, so if they are holding £1 but fill up £50 they could be down £49 when it comes to asking for £50. The £99/partial means they wouldn’t lose out as you can only fill what you have.
They did trial this back in 2018 but it failed miserably as pumps weren’t sending through the final amount quick enough so people where having multiple £99s held for days which you can imagine pissed a lot of people off.