Is it a temporary issue?
It could be, but if you have run it twice or three times with the same outcome most data needed is probably now in cache so it won't fetch the data much faster. The query is highly likely at fault, not the resources available to get an outcome.
Do I need to run the query at the certain time of the day with lower server load?
It might matter for some queries but it will be so marginal that finding such time and then retrying is probably a waste of time.
If yes, what time?
On the SE network some scripts are scheduled to run around 03:00 UTC. You could argue that specific time might see the least number of users competing for the same resource. For Sunday 03:00 UTC this will no work though as in that timeslot SEDE is refreshed with recent backup.
Or is it the kind of queries that will never work again, due to the growing amount of data to process?
Yes, that is most likely. Inefficient queries that hit the Posts (or actually PostsWithDeleted), PostHistory and/or Users table will choke if they are joined with resultsets that can't be quickly sliced. The number of indexes used is low so if you have a where clause on a non-indexed column your query is doomed if you don't optimize the hell out of it.
If you're into SQL Query optimization you can obtain the query plan. Unfortunately the query needs to run to obtain the plan by means if the SEDE UI. However, you can obtain a text version of the execution plan by adding
SET SHOWPLAN_TEXT ON
and set the output to text-only results. You can then analyze if you have options to reduce for example
|--Index Spool(SEEK:([StackOverflow].[dbo].[PostsWithDeleted].[LastEditorUserId]=[StackOverflow].[dbo].[Users].[Id] AND [StackOverflow].[dbo].[PostsWithDeleted].[DeletionDate]=NULL))
|--Clustered Index Scan(OBJECT:([StackOverflow].[dbo].[PostsWithDeleted].[UIX_PostsWithDeleted_Id]))
that happen to be in the query you picked as an example. With this information you could even ask a question on SO or dba.se. You and others have already found ways to implement that particular query more efficient.
There is one other known issue for the “Execution Timeout Expired” and that is when you use one of the magic columns on a resultset with a lot of rows. See Out-of-resources when trying to run a popular DataExplorer query for details.