Robin,
To begin with, the 'Timeout' actions are purely activities within the engine. There is no functionality to stop whatever action the Operator is waiting on. If an operator reaches a timeout designed into the process will execute any post execution code then take the timeout exit point if one has been set.
This is more likely an issue with your query itself that needs to be looked into. If you run your query outside of Process Automation, how long does it run and does it complete?
Within the Process, if you remove the timeout, does the query eventually complete? How long does it take?
The best practice for database queries is to ensure that your query is as focused as it can be. You should not be querying for large result sets or doing any wildcard type general searches.
That being said, the database connection thread should not have been held open and should not have prevented killing the query at the database. This could be a problem that we need to look into further if you would like to open a support ticket we can review.