Hi Ed,
My knowledge of ASP.NET in this area is quite dated, so I'm not sure how much help I can be directly on this. I'm not aware of anything the test runner specifically needs to do in order for the Session to be active ... I was under the impression that these sorts of things were usually arranged by the framework itself and/or setup code in the test.
Do you receive a different result in this test when running it with a non-NCrunch test runner? (i.e. VSTest, or the NUnit console tool).
Something worth trying if you haven't already is to try
compatibility mode to see if this is being caused by an NCrunch settings related issue.