Ahh interesting problem. So ultimately your objective in CP-sat doesn't reflect your true objective.
I think you need to change "I need all possible solutions" to "the best solution is likely to be in the top x% of my CP-sat objective".
If possible you can come up with some heuristics that captures the kpis you are missing such that your CP-sat ojective is more useful.
Then solve again with a constraint based on the % of your best solution, and set enumerate all solutions to true in the solver settings.
I've had similar problems in the past. One thing to be careful of is adding in too many factors into the objective such that it slows down the solve, without these factors actually helping.
Some other ideas I've explored;
- doing multiple solves and adjusting the weights in the objective slightly. This would give slightly different solutions.
- locking certain variables to force the solver to explore a subset of the solutions.