Я б начал с VDS.
Которую можно без проблем увеличить по мере необходимости.
Если, точно знаете, сколько чего будет, то конечно лучше выделенный сервер.
Насчет размещение своего железа.
У вас сломается процессор или жесткий диск, как вы в кратчайшие сроки все восстановите и за сколько? Если ответ Не знаю и больше 2-х часов, то этот вариант не подойдет.
Основная проблема: большой html, который долго генерируется на сервере.
Второй этап объединяем CSS и JS
Третий этап JS грузим ассихронно.
Четвертый этап сначала грузим нужные картинки. Потом уже остальные.
Нормально это сделать, через JavaScript и local storage.
При раскрытие записывайте, что меню раскрыто в переменную в local storage, затем при загрузки страницы проверяйте, есть ли в ней что-то если есть, то делайте раскрытой.
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
Лучше картинкой. Хотя можно и так сверстать, не кросбраузерно, да и кода будет больше.
Помню в нулевых любили делать сложные элементы таблицами. Так, как картинки у многих были отключены.
Каждая ячейка размером в пиксель имела свой цвет и это была пиксельная графика. Весила дофига, но и работала с отключенная графикой.
1) включение gzip (он должен включен и правильно)
2) минификация стилей и JS
3) объединение всех стилей и JS в меньшее количество файлов
4) географическая близость для целевой аудитории. Если аудитория из России, то сайт должен хостится в РФ
5) Ну а вообще лучше дать ссылку най сайт.