Fixes #2: Attempts to use the threadFactory if possible, else uses the
old DefaultExecutor to run our replication.