Are transactions sending ether from contract addresses to normal addresses listed in block.transactions or are they not trivial to detect?
If not in block.transactions than how to detect?
All transactions are listed in blocks and can be recovered using the transaction hash. You can poll for changes on your node by filtering to what you're looking for. Also, if you fire an event from your contract, you can filter to only get updates when you see that event; so, if you want your contract to alert you every time it sends out ether, you could create an event that gets emitted any time a payable function is called.