I've tried everything that's described in those questions, and also followed one thing I found interesting in the answer to "Another installation is in progress":

I have seen it before where the .NET Runtime Optimization Service is constantly firing off ngen.exe using the installer service to generate optimized .net assemblies and never allows the installer to use anything else. You can try stopping that service to see if it makes a difference.

So ... this is exactly what I'm seeing. So I followed advice given in:

This all happened after upgrading SQL Server 2012 Express to SQL Server 2012 Enterprise. And interestingly, when I execute:

ngen.exe executequeueditems

I'm getting quite a few errors, e.g.:

Failed to load dependency SqlWorkbench.Interfaces of assembly Microsoft.SqlServer.Management.UserSettings, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 because of the following error : The system cannot find the file specified. (Exception from HRESULT: 0x80070002)

When I run the command again, eventually, I'm getting:

All compilation targets are up to date.

But .NET Runtime Optimization Service and Windows Installer are still consuming my CPU ... and I'm still not able to install Team Foundation Server on that machine.

I can kill ".NET Runtime Optimization Service" - but a new one will be spawned a few seconds later.

Another thing I've noticed and that puzzled me a little (most likely not related - but just to be sure to have given all information): In the registry path