Add a coro_t::yield_ordered() function and restore yielding in semaphore