I think that the next real step will be downloading a ticket to be stored on your NFC chip on the phone, which can be scanned by a reader held by rail staff (like an Oyster or similar).
The advantage here is that, while you need the phone on and with signal to download the code, once stored on the chip - the reader provides the power to communicate with it. The phone could be off and it would still work.
Failing that, you could possibly have the code downloaded to your smartphone/tablet with NFC, then touch your smartcard to transfer it (which would be secure and a 'once-only' deal) to that. Then you travel as normal, so the app is merely a way of transfering code to your regular smartcard. Of course, you may also be able to just touch in at a ticket machine at ANY station to download the ticket - similar to how Oyster can do so at a chose station on the gates themselves.
The m-ticket seems like a stopgap solution where the developer hasn't thought of everything properly - or, to their credit, HAS thought about them but the TOCs have said 'ah, don't worry about that - we just want a system up and running ASAP'. I know where my money would be on that one!!