>From _thread.scm

(define-prim (##thread-suspend! thread)
  (##declare (not interrupts-enabled))
  (macro-not-yet-implemented))

This is not implemented

-

thread-interrupt! allows you to pass a second argument which must be a void returning
thunk that will be executed on thread restore.

What you want is ##thread-call which will put the result of a thunk executed in another
thread with thread-interrupt! in the specific of a mutex, retrieve it and return it.

In fact, there is a function doing exactly what you want : ##thread-continuation-capture