Remove the assertion that `curproc' must be SONPROC if found on the sleepqueue.
If `curproc' finds itself on the sleepqueue inside wakeup(9) it is obviously
being executed. Such wakeup(9) currently happens inside the critical section
of the SCHED_LOCK(), generally before cpu_switchto(). However `p_stat' is
changed many operations before cpu_switchto() and the KASSERT() isn't helpful
at catching real bugs.
One example of this is a call to rwsleep() that calls wakeup() via rw_exit()
before sleep_finish(), contented futex(2) triggers that a lot.
Another example are dt(4)'s scheduler TRACEPOINT() in setrunqueue() and
mi_switch().
Suggested by and ok kettenis@