Тут дело не в провайдере, а в "длинном" канале с пингом более 40 мс. Каналы то - 100, 1000 и 1000 МБит/с, синтетический BTest гоняет скорость между интерфейсами на уровне скорость канала минус 5-15%.
Похоже, размер кадра (64К) и TCP накладывает свои ограничения. Вопрос - как это все ускорить?
Цитата с Хабра, про OpenVPN, думаю, что это схоже:
Немного технической информации
Если вы пользовались OpenVPN, вы знаете, что он может работать как через UDP, так и через TCP. Если на TCP-сокете установить какое-то маленькое значение буфера, в нашем случае 64 КБ, то алгоритм подстройки TCP-окна просто не сможет выйти за это значение.
Что же это значит? Предположим, вы подключаетесь к серверу в США из России через OpenVPN со стандартными значениями буферов сокета. У вас широкий канал, скажем, 50 МБит/с, но в силу расстояния, пинг составляет 100 мс. Как вы думаете, какой максимальной скорости вы сможете добиться? 5.12 Мбит/с. Вам необходим буфер размером как минимум 640 КБ, чтобы загрузить ваш 50 Мбитный канал.
OpenVPN через UDP будет работать несколько быстрее из-за собственной реализации пересылки пакетов, но тоже далеко не идеально.