I have had this thread going on Answerhub for a few months now and still haven’t heard anything official. However, I have finally discovered the source of the problem with the shaders.
The problem appears to be related to a precision issue on Android Devices within the Shader itself. My phone uses much lower precision it seems than the Shield device, and therefore certain nodes and techniques are very badly affected. The harsh lighting in the images shown is because the surface normals are not based off of the vertex normal, but instead use the Normalized Absolute World Position.
The sun disappears because of the tiny value used with the sphere mask to make it the size that it is (0.0003 units). The only way to get around this is to accept the artefacts that are caused when using a low-polygon mesh for the Earth object (and atmosphere object), and using a plane mesh for the sun instead and rendering it like a sprite in the distance. Using larger values or using values that aren’t too huge (in the case of World Position) seems to be a hacky fix for all these problems.
However, there is clearly an underlying issue here. The devices I deploy to (other than a shield) all use ridiculously low-precision math for the shaders. There must surely be a way to force them to use a higher-precision float? Otherwise certain shaders are quite literally impossible on mobile!