Bring back the (mostly) non-spin-waiting scheduler.

Re-landing.  Resolves #141.  (Except for #260.)  Resolves #259.