Originally, "return_instead" allowed a caller of thread_suspend_check to
check for thread suspension in a context where it wasn't safe to
actually suspend. Later, this check only applied to threads with
P_SINGLE_EXIT (r134498) to avoid wakeups due to fork() (at the time of
that commit, thread_single was called in fork1).
Restore the original meaning of return_instead. This is because the one
case where return_instead is actually used is a case where
thread suspension can be unsafe. If a thread enters thread_suspend_check
from sleepq_catch_signals and discovers TDF_NEEDSUSPCHK is set but no
signal is pending, it will be suspended. It does this after checking for
signals, and drops locks before suspending. With locks dropped, another
thread may deliver a signal. When the first thread awakes, it will not
check for signals again, and will go to sleep, even though a signal that
should have woken it is pending.