Hi Pok,
what I would suggest is to actually read out the temperatures (e.g. using "lm-sensors" in Linux) and use something even more stressing than crossgcc (like "stress-ng" in Linux). Normally, when the CPU gets hot it should "just" clock down and only issue this emergency powerdown in case when the temperatures exceed "extreme" limits (like 100 or 105°C, but depends on the CPU).
Once you know what temperatures your T420 gets, you should be able to find out if this is a thermal issue (defective fan, defective heatsink, wrong installation, bad thermal paste...) or actually something Corebook-related.
Another indicator could be the readout of temperatures and fan speeds while the system is idle. According to some people in the german thinkpad-forum.de, temperatures in idle should be around 44°C with the fan being off and around 87°C when stressing the system for 30 minutes with prime95:
https://thinkpad-forum.de/threads/170582-Erfahrungsberichte-Quadcore-im-T420...
Please compare these measures with your system. It seems like it's possible to mod the fan of the T430 to work in the T420 in order to get even better temperatures.
Cheers, Daniel