Первая проблема здесь: выполнение кода не пойдет дальше до тех пор, пока в потоке ничего не окажется.
А оно не окажется, пока не записать в выходной поток. Отсюда и блокировка.
Можно перенести эту строчку на 22ю и проблема уйдет.