Ah. sounds then it becomes 2 step process.
- Jenkins to package and downsync into author
- Bulk Tree activation with `onlyActivated` filter
Please refer to this article by Tad Reeves. So AEM introduced this newer `TreeActivation` process step that is resilient. Say 50,000 pages are to be published. We set maxQueueSize=100. The process step will split paths in chunks of 100 and publishes. `onlyActivated` filter ensure not to activate unpublished pages. But main beauty, is its non-disruptive nature. Say QA team is also publishing on DEV when this expensive workflow runs. The workflow publishes first chunk, then checks if other user activations are waiting in distribution queue, if yes prioritizes user initiated activations, and then resumes workflow. We used this in our job, to publish half million assets. Ran for 3 days, but completely agnostic in background.

Another idea might be
- Jenkins to package and downsync into author. Replicate package to publisher
- Workflow to query using querybuilder, the activationstatus and manually unpublish.
Second way is easier if lesser pages only needs to be unpublished.