Makes sense. If it does not exist the key has not yet been created so it should be detected at send. So it should not send to an invalid address. Does it though?
An invalid address is not the same as a non-existent address
Something like this "mywalletaddress" would be invalid and non-existent
Something that looks like this "186q9YUW3x8TVHC5aYBEqgZZYMxft8Cw9f" may be valid but non-existent.
If it was valid but the wallet was offline, it would have a valid key and be sent. Wouldn't it then wait till the wallet was online?
If not I need to leave my wallet online all the time to wait for the millions I am being sent. That doesn't sound right.
No, all transactions are pushed into the network and recorded in the blocks regardless of whether the address is online. When you bring your wallet online, it will scan the newer blocks for addresses that you are using, then update itself accordingly.
So in theory somebody could fire up their wallet 50 years from now and immediately receive some bitcoins from a mistaken transaction done today.