I think you guys don't realise that ability to do off-chain transactions electronically already exists:
https://bitcointalk.org/index.php?topic=321085.0It is quite easy to extend this system to do off-line NFC transactions also (in fact the creator of the project intends to implement this I believe).
The way these off-chain transaction work is basically an electronic equivalent of a Casascius coin....
And like the Casascius coin, it is susceptible to hacking and counterfeiting. How does your system detect duplicate keys sent from a hacked or counterfeit device?