В отличии от Алексея Букина вы понимаете почти правильно. Питон по умолчанию однопоточный. И если вы выполняете блокирующую операцию, а все операции над сокетами блокирующие, то будет заблокирован весь поток. Как правило сервер (uwsgi, gunicorn) запускает несколько потоков выполнения ( workers ) между которым деляться пользовательские запросы, но тем не менее в вашем случее каждый из них может подвиснуть на время выполнения операции над сокетом.
Бороться с этим можно двумя путями, первый - выполнять их в других процессах с использованием того же cellery. Правда тогда придется повозиться с тем чтобы отдать результат клиенту.
Второй попытаться использовать gevent который предоставит возможность асинхронной работы с сокетами. Копать надо в сторону gevent режима uwsgi демона.