My 100% kernel_task came back a few days ago. I don't know what caused it - I have not used my computer much in the last few weeks.
I ran a spin dump while this was happening, here's the interesting result:
Process: kernel_task [0]
Path: /System/Library/Kernels/kernel
Architecture: x86_64
UID: 0
Version: Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; root:xnu-3248.20.55~2/RELEASE_X86_64
Task size: 408374 pages
CPU Time: 10.062s
... threads removed ...
Thread 0x3ac 1000 samples (1-1000) priority 80 (base 80) cpu time 9.990s
*1000 call_continuation + 23 (kernel + 1884023) [0xffffff80003cbf77]
*1000 _IOConfigThread::main(void*, int) + 316 (kernel + 6895708) [0xffffff800089385c]
*1000 IOService::doServiceMatch(unsigned int) + 554 (kernel + 6871162) [0xffffff800088d87a]
*1000 IOService::probeCandidates(OSOrderedSet*) + 2358 (kernel + 6892486) [0xffffff8000892bc6]
*1000 IOService::startCandidate(IOService*) + 109 (kernel + 6893757) [0xffffff80008930bd]
*1000 AppleIntelCapriController::start(IOService*) + 3099 (AppleIntelFramebufferCapri + 81425) [0xffffff7f82f8ae11]
*1000 AppleIntelCapriController::initPMRegisters() + 161 (AppleIntelFramebufferCapri + 27927) [0xffffff7f82f7dd17]
*957 SafeForceWake(bool) + 176 (AppleIntelFramebufferCapri + 71022) [0xffffff7f82f8856e] (running)
*30 SafeForceWake(bool) + 172 (AppleIntelFramebufferCapri + 71018) [0xffffff7f82f8856a] (running)
*13 SafeForceWake(bool) + 179 (AppleIntelFramebufferCapri + 71025) [0xffffff7f82f88571] (running)
Now at least I know what is causing it, but I have no idea how to resolve it. Searching for "SafeForceWake" or "AppleIntelCapriController" does not yield interesting results.