A special activity ... Sleeping

How can I suspend the interpreter for a second and then tell it to do the next task?

You would use the extension Real-Time Delays by Erik Temple.

But because everybody reads at different speeds, real-time effects in delivering text are to be used with considerable caution; one player may have finished the preceding text and be waiting around when your real-time effect kicks in, another may only be halfway there, and a third has got up to make a cup of tea and totally missed it. Some interpreters may not be able to access the system clock in any case; and, particularly with more complex games and web or mobile-device interpreters, you can’t always expect that the time to process a command outside your real-time effect will always be the same for every player.

So usually when authors want to get an effect like this, they’ll use the Basic Screen Effects extension and the command

wait for any key;

Real time delay? Thank you but would it work with the zmachine?

No. This is something you can only do with Glulx.

You can wait for a fixed interval on Z-machine, by performing a wait for a keystroke with a timeout. (That is, you’d be waiting for either the user to hit a key or one second to pass, whichever comes first.)

I don’t know if there’s an extension that covers this, but you could say

To wait for any key up to (N - number) sec: (- VM_KeyDelay({N}*10); -).

(The argument to VM_KeyDelay is in tenths of a second, which is why the value is multiplied by ten there.)

But I reiterate maga’s statement: this is probably going to annoy your players.