"блокировать загрузку клиентом следующего фрагмента" - клиент загружает данные не непосредственно в ваше приложение, а в сокет TCP.Этот сокет имеет определенный размер, т.е. буфер, поэтому, если буфер заполнен, клиент будет ждать, пока он не будет очищен, и затем продолжит загрузку.Ваше приложение с помощью Tornado читает из этого буфера TCP-сокета и очищает его той частью, которая была прочитана.Процесс отправки чанка в AWS не остановит клиента от загрузки данных в TCP-сокет, даже если вы отправляете данные в AWS блокирующим способом (то есть без run_in_executor, но вы заблокируете свой сервер от обслуживания других запросов).Если вы отправляете данные в AWS медленнее, чем загрузка клиента, тогда ваше приложение будет узким местом и предотвратит (что технически не то же самое, что блокирование ) клиента от загрузки больше.