(How will this even be allowed by the wallet? does it require hacking into wallet software?)
As long as you have unconfirmed transaction, you can create another transaction by the same input. That doesn't necessarily mean you can send & use the 0.5 BTC twice. Answer in the 2nd quote.
How is this double spend resolved? Is it chronological order, i.e. will the first transaction be accepted by the blockchain and the second one be rejected as the address does not now have enough balance?
It's not chronological. The higher fee one will get confirmed before the low fee one. Low fee one will then rejected because it has
already spent input.
Edit- Looking forward to someone expert to confirm my statement is correct or wrong.