Странное предположение, возможно, это неправильно. sleep() приостанавливает текущий Greenlet и возобновляет следующий, ожидающий, Greenlet. Скорее всего, это следующий Geenle, который запускается после sleep(), который блокирует выполнение.
Если вы не видите распечатку трассировки, это не происходит из-за сна().
Исходный код функции сна:
def sleep(seconds=0):
"""Put the current greenlet to sleep for at least *seconds*.
*seconds* may be specified as an integer, or a float if fractional seconds
are desired.
If *seconds* is equal to or less than zero, yield control the other coroutines
without actually putting the process to sleep. The :class:`core.idle` watcher
with the highest priority is used to achieve that.
"""
hub = get_hub()
loop = hub.loop
if seconds <= 0:
watcher = loop.idle()
watcher.priority = loop.MAXPRI
else:
watcher = loop.timer(seconds)
hub.wait(watcher)