#1: I am pretty sure that there is nothing in the world model that can be used to determine these. I guess these depend on the weather and as such I am not sure if we should call it a backend task.1. a backend that calculates color modulation for atmosphere and clouds, as well as the fog colour
2. a backend that calculates the position (and visibility) of the sun and the moons
3. a backend that calculates a weather setting, depending on region and time
4. calculate the moon phases (based on date)
#2: That is one of the more interesting parts. Do we have any idea about the celestial mechanics of Mundus? I would expect that these can be calculated by an algorithm that only uses time and date as input.
#3 Not much to calculate here. There are region-specific weather tables. And weather can also be adjusted by script instructions. If you need the current weather for rendering, I suggest for now just set it world-wide with the script instructions. We can handle these tables and weather limited to one region later.
#4: same as #2.
I suggest to create a new class for the sky/weather state and give MWWorld::World a member of this class. This way we can avoid bloating the World interface further (almost no additional public functions needed; except for the weather part). The new class can communicate directly with the RenderingManager, which in turn passes on the requests to the SkyManager.
btw. I am not 100% sure about this, but I think there is a bug in the cell-specific ambient lighting (which is only available for interiors in MW), which also sets it in exterior cells. This bug might interfere with your attempts.