Нет, все вообще не так. Короче, у тебя есть бесконечный цикл, где крутятся ТАСКИ. В один момент времени выполняется одна ТАСКА, а переключается выполнение в местах, где ты пишешь await. Вот то, что через await вызывается это корутины. Если у тебя в цикле одна таска, то выполнение асинхронного кода ничем не отличается от синхронного. А смысл асинхронности в том, что некоторые задачи могут выполняться грубо говоря в фоне, пока процессор занимается чем-то другим. Поэтому твои сокеты по факту синхронные. Тебе нужно в луп несколько тасок загнать, чтобы был какой-то эффект