Hi Paul,
The server doesn't timeout when running a query (linked servers aside). It's the client that tells the server to cancel a query based on its command timeout value.
You should be able to see when the client sends a request to cancel by capturing Attention Events in a SQL Profiler trace .