This is Gabriel, welcome to Stackoverflow.
There are two ways you can achieve what you need - one easy and one that requires more code to be developed.
The easiest way just use the function scope.setTimeout(function[, delay])
. Basically it will execute the code inside the function only after the time in milliseconds set in the parameter delay.
Within the function you just redirect the user to the desired page. And before the function, just display some Download (there are several simple and small libraries that do this).
loader.display = "block";
window.setTimeout(() => {
window.location = "https://example.com";
}, 3600);
The second way (which requires more skills) you will have to intercept from which page the user was redirected to that loading page (can be through GET parameters, cookies, Sessions, etc) and use the same function as mentioned above scope.setTimeout(function[, delay])
to redirect the user after X time to desired page.