BulkEnrollmentJobRunner
Asynchronous orchestrator around BulkEnrollmentProcessor. The REST endpoint queues a job via start(); a single WP-Cron event then runs the entire batch in one tick, streaming progress through the processor’s row callback into a wp_option the React polling loop reads via get_progress(). Progress is stored in options, not transients, so it survives long imports the same way FeedBulkImporter does. Only one active job per show is tracked (benecaster_enroll_active_job).