Ok, I've gotten to the bottom of this issue.
I'll try to go into some detail here, because this is kind of serious in the sense that a lot of people are going to be hit with it as they upgrade to NUnit v4.4 on the current version of NCrunch.
Basically, NUnit 4.4 contains a small change in the manner in which test failures are reported to the runner. PR4979 changed NUnit so that when a test reports an exception, this is recorded in the result message through both the normal error reporting section AND also as an assertion failure inside the assertion block.
If my memory and notes serve me accurately, the assertion block was something that was added in NUnit v3.6 as part of Assert.Multiple, as the framework needed a way to report multiple assertion failures to the runner (which wasn't previously possible in a design where the test could only encounter a single failure before it ended). At the time this was added, the runner (NCrunch) needed to be able to identify whether a test was reporting its results using Assert.Multiple (which would use the new assertion block), or whether it was just a standard test failure (which would go via the usual method).
To handle this, NCrunch would first check if the test result contained an assertion block. If it did, then all error reporting would work from the assertion results. If not, it just used the standard reporting. It couldn't use both because then you'd risk getting your exceptions twice in the log.
This was all great and in theory it should have worked with the changes in NUnit v4.4, since now we have both an assertion block and a normal error report, and the assertion block should just win. The problem is that when the test fails with an exception (and not an assertion failure), the assertion block is marked with an 'Error' result, where NCrunch expects this to be a 'Failure'. The end result is that NCrunch takes the assertion block as being the source of the error, but it doesn't recognise what's reported, and thus captures nothing.
So I guess it would appear to be a fairly innocent change in NUnit, and it actually makes sense too, as it does simplify reporting and probably was introduced for good reason, but it seems to have broken us.
We do have nightly builds that exercise NCrunch over the newest version of NUnit to try and flag problems like this, but this one slipped through the cracks. We're generally more focused on pass/fail reporting than we are on whether the exception messages get through for every test, so we weren't aware of it until your report.
The good news is that this is a trivial fix on NCrunch's side of the integration point. Regardless of whether any changes are made on NUnit's side because of the breakage, we still need to support all released versions of NUnit, so I'm pushing a fix into NCrunch. I'll try and push a full release out tomorrow as I believe this to be a critical-level issue. Until the build is out, I recommend sticking with NUnit v4.3.2 instead, otherwise you won't get exception details in your test results.