Hi,
Thanks for sharing these issues. I'm going to try to separate them from each other so we can troubleshoot them independently.
1. Debug related issues: NCrunch is reliant on custom debug metadata that is emitted by the compiler for async methods and yield iterator blocks. When Roslyn was first released, there were a range of issues where the new custom debug metadata was not being handled correctly by NCrunch and it was being stripped from the .PDB. To my knowledge, all these issues have been since fixed, but MS are constantly changing the the custom metadata formats and it wouldn't surprise me if there's a new hole as a result of a VS update. If you can share a code sample of an async block that consistently blocks your access to local variables, I'd really like to take a closer look at it.
2. Command window popups: NCrunch isn't responsible for creating any visible console windows during its execution, but it does execute user code which may be responsible for doing this. v2.20 introduced a change to the NCrunch task runners where they are now classified as windows applications rather than console applications, and there has been another user that has reported that they're now seeing console windows pop up during test execution. My gut feel is that the change may have had some kind of knock-on behaviour where console windows spawned by test/production code are now becoming visible where they previously weren't. I recommend selectively running your tests until you can find the code responsible for spawning the console window. If you can describe to me how this code is working, I'll investigate whether it's worth reversing the change in v2.20.