Невозможно запустить какой-либо код, когда процессор спит, поэтому вам придется либо использовать внешнее оборудование, либо периодически будить компьютер и проверять температуру.
Для внешнего оборудования вы можете подключить датчик температуры к Arduino и отправить ему пакет Wake On LAN (WOL) со щитом Ethernet. Вы также можете подключить его непосредственно к разъему WOL, если он есть на материнской плате, или подключить его к выключателю питания.
Чтобы периодически разбудить компьютер, вы можете использовать будильник RTC, проверить температуру, затем сбросить настройки будильника и при необходимости снова перейти в спящий режим.
Другая идея, и это не ответ на ваш вопрос, но может быть ответом на вашу проблему ... почему бы не снизить тактовую частоту процессора, когда он нагревается?