Нет. Блокирующий код — код, который занимает поток, но при этом не выполняет полезную работу.
var a = 1 + 2
var b = a + 3
Код выше синхронный, но не блокирующий, потому что всегда занят полезный работой.
var a = RemoteServer.Add(1, 2)
var b = RemoteServer.Add(a, 3)
Код выше такой же синхронный, но при это блокирующий. Потому что поток ничего не делает, пока запрос доставляется серверу, пока сервер считает ответ, который потом возвращается.
Да, в обоих ситуациях ОС может отнять на время у нашего приложения поток для своих задач. Но это другой уровень абстракции, который нас не волнует в данном случае.
С async/await, если очень упрощать, будет так:
Дошли до строчки await RemoteServer.Add(1, 2). Дали команду сокету на отправку запроса, сохранили состояние метода в памяти, ждём прихода ответа, восстанавливаем состояние метода и продолжаем выполнение.