Prometheus already tells us, which time it allots for the query by supplying the header X-Prometheus-Scrape-Timeout-Seconds (which defaults to the global scrape timeout and can be overridden on a per-job basis).
Prometheus' default configuration sets 10 seconds.
Aligning --timeout with the X-Prometheus-Scrape-Timeout-Seconds would simplify the general setup.