Вы всегда можете использовать debounce на случай если пользователь барабанит по свичу без перерыва. Не вижу таких условий при которых ваш scheduler будет загружен настолько, чтобы были задержки при обраотки ui событий. Но если у вас действительно какая-либо высоконагруженная система, используйте ThreadPoolExecutor, тем более rxJava позволяет с легкостью создать scheduler на базе экзекутора: Schedulers.from(Executor)