We have implemented a custom rollout by using the OOTB RolloutManager's rollout functionality and passing the required attributes.
We have basically used what we have for we.retail and implemented language masters and live copy implementation for about 10 different languages.
In local env rollout works just fine and it is super fast but when we deployed the functionality to QA env, it takes a way too much time. Upon lot of investigation and indexing, we are able to narrow it down the issue is because of the number of blueprints (3500+) available in the QA env and because of that it is taking lot of time.
When we had used profiler then this is what it is pin-pointing at the bundle - com.day.cq.wcm.cq-msm-core - version 5.12.58
After we removed those blueprints and kept only some handful blueprints under /etc/blueprints, performance again improved drastically in QA.
All those blueprints are at /etc/blueprints as those were from AEM 6.3
After we have upgraded to AEM 18.104.22.168, the new blueprints are being created under /apps/msm folder.
We have not tried to move blueprints from /etc/blueprints to /apps/msm yet but will try next.
Does anyone have any advice or suggestions how to address this slow rollout issue?
I think you already know the answer as mentioned in your problem (and you may already know, just to add 2 cents of mine based on my understanding). Every blueprint associated to direct or indirect way to OOTB/custom workflows and events (via live copy or language copy) and those are keep listening to fire of those events.
couple of precaution you can take
1. blue print configuration shouldn't be overriding/applied to same area which is used by other (as blueprint can be shared with many live copies and language copy)
2. Optimize, if you are creating custom blueprint by overriding events then configure those correctly and similarly for workflows as well