Current version tests one thing, leaves todo for EVR failing to restart, and then the fix is applied to the session logic, that does not have much to do with EVR.
Have you tried testing the session change by itself? EVR is complicated enough as it is, but for the NotifyPreroll() there is an easy way - you can use whole sample grabber sink, add prerolling interface to it, and see if it's called on Windows at all when transitioning from stop -> start.