Moved a couple verifications out of the PriorityScheduler
These now live in the "StrictPriorityScheduler" which is used in unit tests (so they are still being verified internally, but we no longer need to take the verification load in our normal runtime).
I also added a few small unit tests to get us that little bit of extra code coverage.