One of the things I've discovered is how to trick Blender into letting you render. The system needs to "build" the scene and get all the information before it even starts to produce the image. One of the newer feature that I'm sure most (if not all) people have is "persistent data".
This might sound contradictory because the warning says it uses more memory, however this has been what I use to trick Blender into rendering 2160x5076 stills and Animations.
You enable this and basically get everything ready like you would if you weren't concerned about memory. Then in the render settings tab you slide the resolution percent down to something like 5%. It renders in less than 10 seconds. As little as under a second depending on your scene. After that's done, go straight to your render settings and increase the percentage to 100%.
As long as you've enabled persistent data before the 5% render it should render right away. I usually render more painterly style shots using lower sample count and denoiseing with different post effects, but even for my hyper realistic goals this has helped trick the engine to render. WARNING ⚠️ I do not know if Blender loads the asset information differently for different sizes, but I have seen no cons for my use with this method. Yeah it's a little odd but it gets the job done for me.
Blender loads the scene information and renders a scene that take sup probably less than a GB of ram to accomplish. Now since the information is saved (thanks to the function of "persistent data") I can render my 4k render right away no problems.
Somebody pleas let me know if this is doing something terrible on the backend or if there's a nicer way but this has been my solution for a while now.
The setting is available for Cycles in Properties → Render → Performance → Final Render → Persistent Data: