. . . I need to know exactly when a miner's reward is 'spendable' and how this is determined logically . . .
It depends on what coin you are mining, what pool (if any) you are participating in, and what wallet software you are using.
At the bitcoin protocol level:
https://en.bitcoin.it/wiki/Protocol_rules12. For each input, if the referenced output transaction is coinbase (i.e. only 1 input, with hash=0, n=-1), it must have at least COINBASE_MATURITY (100) confirmations; else reject this transaction
So, if you are solo mining bitcoins, and are creating your own raw transactions, you can assume that you will have to wait until the reward has 100 confirmations before any transaction you create will be relayed by any peers, or confirmed by any miners.
If you are using the Bitcoin-Qt wallet, I think it adds an additional buffer of 20 confirmations before it will allow you to create a transaction that uses a coinbase output as an input. ( I know it used to, I'm not sure if the additional 20 confirmation buffer was ever removed from the wallet).
If you are mining in a pool, the pool operator may have their own rules about the number of confirmations that a coinbase transaction must have before they will allow you to remove/spend the bitcoins from the pool. In that case, you would need to ask the operator of the pool you are working with.