1. Do transactions ever time out if not accepted into the block chain?
e.g. if I create a transaction today, and it happens to be invalid, is it possible it will unexpectedly get accepted, e.g. with a later release of the bitcoin block chain code that has policy changes, maybe in x years time? (assuming transaction this would have to be accepted by miner *and* the block chain code)
There is no time out. By default nodes will drop invalid transactions. But there is nothing to stop people from storing invalid transactions.
A policy change that accepts a previously invalid transaction is called a "hard fork". It requires the consensus of ALL bitcoin users, including miners and non-miners. It is unlikely to happen. But if it really happens, your previously invalid transaction might be accepted.
3. Would it be possible to pay for something with a transaction that contains an invalid scriptPubKey, (e.g. the pubKeyHash is invalid - if I understand this correctly would mean this output cannot be used as an input for further transactions), and trick the recipient into accepting this as payment? If not, why not?
It is possible only if the recipient is stupid enough not to verify the transaction.
Or for another example, maybe one less far fetched, consider a non-standard transaction, that isn't included in the block chain any time soon. Is it possible that a miner could unexpectedly process this transaction at any undetermined point in time in the future of bitcoin? Or will the transaction eventually expire?
There is no expire. However, you may simply spend one of its inputs to make it invalid.