A few of thoughts:
The rendered view on the viewport is really not a good indicator of how things are going to look in the final render and should be viewed with caution.
(read this link for more info)
Instead, use a Render Border to test render small segments of the image and evaluate the real render settings. It is the only way you will get an idea of how things are working.
It is easier to perceive noise in Dark and low contrast images with small light sources. Our sense of a noisy image is relative, images with more contrast are perceived as to have less noise than those with low contrast. Even when the grain structure is the same.
Rendering at a larger size and reducing the image size in postproduction can also help mitigate noise.
Another trick is not to make the original image not quite as dark and then darken later, as part of postproduction.
Additionally you might want to try the new denoise feature on available on v2.97. You still need a lot of samples to get a decent image, but not quite as many as you do without denoising.