TRUNK-4212 SchedulerServiceTest fails depending on thread scheduling

This is a rewrite of most of the test as it had a lot of race conditions arising from assumptions that thread order of execution was nice and reliable.