high CPU usage by kernel_task is caused by high Thunderbolt Left Proximity temperature, which is caused by charging and having normal peripherals plugged in at the same time. Did anyone ever figure out why exactly the temperature sensor was making kernel_task go crazy?
The comment by jksoegaard may explain it: "the purpose of the thread is to force idleness". I guess it uses up all the CPU without actually making the CPU do anything, so other processes can't use the CPU and produce more heat than it can handle.
There was an app called Rain that you could download and it would just keep the idle process from running away and causing heat. I may need to research this on my lunch break and report back.
EDIT: Here's a related thread: https://arstechnica.com/civis/viewtopic.php?f=8&t=1060257