For testability & reuse, move scheduler setup into its own package.
Fix up client tests now that we check the query in FakeHandler
Handle errors slightly more intelligently