It might work for USD or EUR to and from XMR but it wouldn't work for any other currency because the liquidity is so low, if the profit isn't there no-one will risk the trade to do the exchange. If you look for instance at CAD, there aren't any trade less that 5% either way. For the Indian Rupee, you can sell for a 10% spread but you can't even buy it. For other currencies, the spread and liquidity can be far worse so the choice will be to either the be no offers or accept the high spread offers.
There is also such a thing as arbitrage. People will go the better offer so if there is a large spread, there will be people who are willing to convert their currency to a foreign currency and buy or sell XMR in USD and pocket the difference. If it's profitable, someone will be willing to do it for less and eventually the profit will reach an equilibrium point that is fair. Since currency conversion usually has a fee higher than 3%, your 2.5% cutoff would eliminate this very fair liquidity (i.e. it's unfair to expect people to trade at a loss).
If you don't like the exchange rate, go to BasicSwapDEX and trade XMR for nimble wimble LTC. It's a bear to install and you will have to do some work to ensure you don't lose funds and you will have KYC issues with LTC to and from fiat, but it gives you a better rate. Or you can use a regular LTC/BCH to and from XMR trade on Haveno and worry about the KYC LTC separately if you want a better deal.