Pre-process the heavy work into a calculated data source on a schedule, then point the dashboard at that instead. Queries that would time out live become immediate, because the expensive joins ran overnight rather than while somebody waits.
Video: Calculated Data Sources on YouTube
Dashboards get slow for a reason that is rarely the dashboard: they recompute an expensive join across large tables every single time somebody opens them. Pre-processing is also what makes dashboards usable on a patchy connection, where a slow query does not merely annoy but fails outright. That is the difference between a dashboard a ministry opens weekly and one it quietly stops trusting.