Даже 100 мсек на таблицах такого размера - это много. Первое, что приходит в голову - СУБД не хватает памяти/проца, либо она не настроена (это касается и нужных индексов).
Если оба впна хотят у вас установить свой маршрут 0.0.0.0/0, то одновременно без приседаний никак. Если же эниконнект пушит только отдельные адреса/подсети - проблем быть не должно. Лично у меня спокойно сосуществуют опенвпн, wireguard и anyconnect.
"Конкретные сайты" видны в начальных пакетах HTTPS, заблокировать их можно только в этот момент (до внедрения ECH, поскорее бы). Лучше всего для этого подходит HTTP-прокси в прозрачном режиме.
HTTP? Всё выпускать наружу через отдельный сервис типа нгинкса/ингресса, там же терминировать шифрование и выпуск сертификатов. Как сервисы будут общаться между собой локально - непринципиально.
Давно существует набор бест-практиксов от практически любого производителя железа - с указанием конкретных моделей, топологиями, способами масштабирования и т. д. В качестве примера можете взять одну из первых ссылок гугла по фразе "cisco network design best practices".
Докер без бубна в WSL (даже версии два) не работает. У меня были потуги обойтись без виртуалки в винде - но на докере терпение закончилось и я взгромоздил настоящую Убунту в виртуалбоксе, что решило 99% проблем.
Так, как описывают товарищи по ссылке - не получится. На вашем сайте книжка разделена на отдельные страницы и скачивать таким образом их можно только по одной, кликая вправо-влево и доставая из консоли разработчика ссылки.
У вас технический вопрос или организационный? Какую частоту запросов считать "слишком большой", никто кроме вас не скажет - это индивидуально. Посчитать это можно, проанализировав access-логи.