MSVC 2012, x64 build
The /MP switch has not been fixed. In the ProcessExplorer (sysinternals, now Microsoft) I see for process "mcpcom.exe" CPU utilization at 23% (I have core2 quad CPU, i.e. only one core is used out of 4) and it displays for open handles only one *.obj file at a time.
When in build process I press Ctrl+Break, it will generate *.obj file of zero size, later on F7 press, it will compile the rest and on link it complains "x64\DebugOptimized\XXX.obj : fatal error LNK1136: invalid or corrupt file". I recommend proper file wiping, or as a workaround, I suggest checking for zero-sized *.obj files. I have reported this issue with "update 2" on this forum, but I can't remember the exact URL. If you want to reproduce the issue, just hit Ctrl+Break.
issue 3. [optional]
In the ProcessExplorer, I have seen on link-time code generation ("/Qipo") that code generating-linker is opening and in turn closing and opening in turn the same *.obj files, often many times in sequence. I suggest for optimal performance a "file descriptor caching", like it has Apache web server implemented, just to keep files open for a few seconds (with use of hash tables), and after that closing it.