You would need to trace on the remote servers to see what is happening.
When a timeout elapses, the client (which is in this case is the originating server) sends an attention signal to the server to cancel the operation. The red button in SSMS does the same thing. There is a trace event for attention signals in the Exception category, by the way.
When SQL Server gets the attention signal it will always roll back the current statement. It will also roll back any open transaction if the setting XACT_ABORT is ON. The rollback may take some time.
Furthermore, due to the nature of the SQL Server operating system, the process may not notice the timeout. It can only notice the time, if it voluntarily yields. Which it can't do if it is making a call to the OS or something else outside SQL Server, for instance accessing yet a linked server.