Thanks, this confirms that the problem is inside the test filtering and execution rather than the category recognition - with does help to narrow things down.
I've done some extra testing at my end and couldn't reproduce any obvious problems around category filtering with this engine mode condition. Although, I am wondering a bit about the arrangement of code within the tests that you're working with. MSpec has different behaviour from the other test runners in that it cannot separate individual specifications from their parent context. This means that if any specification within the context needs to run, then ALL the specifications within the context will be run together (NCrunch cannot filter them out).
Because MSpec's Tag attribute only works at class level, it's hard to see how this could be problem ... though MSpec does also have certain constructs such as behaviours which may change how this works, and I'm also conscious of complex situations that can be created using inheritance.
Are you able to reproduce the problem using a simple example that you can share? This would help enormously with troubleshooting.
I just thought I'd also make sure to check that you had your new engine mode selected using the top NCrunch menu. I know, it's obvious, but it's very easy to forget to do this (I have trouble with it myself).
Thanks!
Remco