Being only able to set a global query timeout (current implementation) is not sufficient for all use cases. For example, the SQL and Google Analytics data sources may require very different timeouts: the former may be considered okay to run for quite some time, whereas the latter is expected to respond quickly, and time out soon in case of a stuck request (which happens from time to time) in order to free up the worker.
There can also be an option to set the timeout for individual queries.