And if you use this to create a "pause" and you set it for a sufficient period of time your browser will flash the user a "long running script" message. Set it for 20 minutes and see, although it should only take about 4 or 5 minutes. And it doesn't matter if a single pause isn't sufficient, what counts is how long the entire script takes to run.
A function that is executed as a result of setTimeout is different. It starts out with a brand new instance of the "browser timer" so you don't have this problem.
Why on earth would someone want to set a long pause?
The OP requested a pause for a reason, whatever that was and if it is going to cause problems with interactivity for users, then that is the problem of the programmer to decide on if they stop using pauses.
Only thing I can see a pause being used for is to either, pause an output to a display or to mimics the pause() / sleep() functions in a web browser emulator for another language.
Unless the OP comes clean with the true purpose or need for this scripting, we can be talking cross purposes all day long.