That's not correct, you do not need the maximum fare on the card. An amount is debited when you start a journey (which is not the maximum fare, although I forget what the amount charge is based on.) If there's not enough money on the card, it takes it into a negative balance. The actual charge is worked out as you leave as you say, which can leave a card with a negative balance. Cards with negative balances can't be used to start a new journey (or have travelcard passes added to them) until the negative balance is paid for.
The advantage of Oyster is that a deposit can essentially be used as an overdraft. With a contactless card, there is no way to do this. The only possible way is an agreement with the banks akin to a cheque guarantee card, and I can't see how or why they'd agree to take any risk on - unless it was in return for taking a higher percentage fee on every journey.