Possible ghetto fix
Have the phone run an intensive background task on a low priority when:
The screen is unlocked AND
The temperature is below a specific value
That would warm the device up to within operating temperature, and would count as a software "fix". Battery life be damned.