Don't use busy waiting if you don't have to with earliest

If we have a single channel and we're not using a wait block,
we can simply call $c.receive.  This addresses RT #123515,
but a facility (probably VM-level) should be added to prevent
busy waiting, even in the multi-channel case