Что вы используете для отправки запросов? Я подозреваю, что проблема лежит там.
Я протестировал ваш код с помощью ab (Apache Benchmark) и получил это (отредактированный вывод):
$ ab -c 200 -n 200 http://localhost:8888/
Completed 100 requests
Completed 200 requests
Finished 200 requests
Concurrency Level: 200
Time taken for tests: 5.048 seconds
Requests per second: 39.62 [#/sec] (mean)
Time per request: 5048.386 [ms] (mean)
Команда ab делает 200 одновременных запросов к серверу gevent. Через пять секунд все запросы были выполнены. Если запросы были поставлены в очередь, как вы предлагаете, этот тест занял бы 1000 секунд.
Полагаю, возможно, что ваша система не поддерживает гринлеты должным образом, но более вероятно, что метод, который вы используете для тестирования, блокирует каждый запрос. То есть сервер поддерживает параллелизм, но ваш клиент - нет.