Preface: This is a solved issue, but may help anyone who comes across this bug in the future. I found a similar post in the forum, but there the solution was "fixed itself". Not very helpful.
Problem: Both GPU and CPU fans stuck on high speed while the internal temperatures are very low (~30C).
Solution: Reset the internal battery.
Symptoms: During the boot process the fans spool up, then calm down until windows starts up. Then stay at high RPM, even when manually overriding. The fans stay on high even when in the BIOS menu.
CPU, GPU, RAM and disk usage are all within normal idle values.
SpeedFan and MSI Afterburner both report the GPU and CPU temps to be around 30 degrees, which is lower than normal idle.
Using RW Everything, the Embedded Controller reports the following:
0x93 | 0x94 | 0x95 | 0x96 | 0x97 | 0x98 |
84 | 7B | 7C | 04 | 7B | 7C |
left fan mode | desired speed | set speed | right fan mode | desired speed | set speed |
Value 84 at 0x93 is certainly an error, as it should have either be 04(auto) or 14(manual).
Using NoteBook FanControl and overriding the settings results in the fans rapidly speeding up and slowing down and the "desired speed" values flipping between FF (min) and 7B (moderately high). The 84 at 0x93 also turns to 94.
After resetting the battery idle temps rose back to ~45C and the fans return to normal idle speeds (F0/FF). They also properly spool up under load.