There's no direct equivalent POSIX API to suspend.  POSIX has  pause and sigsuspend,
which don't work as described in suspend:

   (suspend)     →     undefined         (procedure)
   Suspend the current process with a SIGSTOP signal.

It can be useful, but why don't we include POSIX pause or sigsuspend instead,
which are more general?

"Suspending the whole process with SIGSTOP" can be achieved if we have
kill(2) interface (which is excluded in srfi-170, but we may have one in future).

If we still go with the current suspend, I think it's better to mention what happens
when SIGCONT is received.   I assume suspend just returns.

If we adopt pause(2) or sigsuspend(2), there's a complication with the delayed
signal processing in runtime.  As discussed in signal handler semantics, Scheme
signal handlers are not directly invoked from system's signal handlers, but rather
invoked in the safe point.   However, if we do this:

     check_pending_singal_and_call_scheme_handlers();
     pause()

A signal delivered between two calls won't be processed until the process wakes up.

The proper way is to block signals while processing pending singals, then
restore signal mask and enter into sleep atomically.   It isn't possible with pause(),
but sigsuspend() can.  For this reason, Gauche uses sigsuspend to implement sys-pause.