here is the sequence of events:
5 minutes before the off you send a £100 back bet at back_price, the back price is 2.40 with £50 waiting
back bet of £100 at 2.40 was received by Betfair, £50 matched at 2.40
£50 is unmatched and is now waiting to be matched at 2.40 on the lay side, back price is now 2.38
if you use best instead of back_price in your trigger, £100 bet would bet fully matched at best price, e.g. £50 at 2.40 and £50 at 2.38, this is how the helpfile describes it for laying:
The term "best price" here refers to the lowest possible price available for your whole bet to be matched. Let's say you lay £1000 at 4.5, but only £500 is available at that price. Another £400 are offered at 4.4 and £300 are offered at 4.3. If the program is to match your whole bet, it will have to lay £500 at 4.5, £400 at 4.4 and £100 at 4.3. Luckily this is done automatically by the exchange if you lay at a price that is higher than the current available odds. I.e. if the program offers £1000 at 5.0, the exchange will automatically lower down that offer to the best available prices and match all three portions.