This article (and many others) say that
ngen.exe executequeueditems
From the command line should kill it. For me, that command just hangs. Is there some better > way to kill this process?
Nope; it doesn't kill it. Instead it makes it intentionally worse. Instead of trickling background compiles (so that you normally wouldn't notice it), it will process all queued items at once. This will take some time to finish. It doesn't hang, it will be working very hard. When it's done, it's done, and there will be no more things left to background-compile.
Note that the background compilation jobs have been added (most likely) by a recent upgrade (you probably installed a service pack). Windows is doing you a favour by AOT-compiling all the managed assemblies using the .NET JIT compiler which knows all about your exact hardware and processor type, so that it will emit the most optimized code. In this way, .NET ensures that software run faster in the future, at the cost of compiling your assemblies now
Of the many resources you indirectly linked to yoursef, read this one e.g.:
why is the engine of my car using so much gasoline? Well: I'll just axe the front of my car, and hope it stops using gasoline.
Only this time, probably the car was built to automatically revive the engine after you axed it :). – Pricket