Под ночной приезд на Московский вокзал я бы искал у Площади Восстания и Маяковской, там мини-отелей много. Я гостиницы в Питере подбирал здесь
https://spb.sutochno.ru/hotels на Суточно.ру, в разделе отелей есть фильтр по времени пешком до метро, удобно отсечь всё дальнее. Когда я смотрел, у Площади Восстания был Boho Nevsky 132, около пяти минут пешком, примерно 2900 за сутки. Рядом с Маяковской есть Сити Лайтс Syncotel, там больше тысячи отзывов с оценкой 9,6, и мини-гостиница Boho Home. Про ночное заселение обязательно напишите заранее, у мини-отелей ресепшен не везде круглосуточный. Учтите, что цены в карточках показываются на конкретные даты, на ваши могут отличаться. Номер вам нужен на одну ночь?