I can't reproduce this. It could be a totally expected behaviour of running independent optimizations, or using random seeds in some of the processing steps.
You attribute the "issue" to the number of cores. Can you confirm that (i) you are running the same analysis with identical parameters, i.e. without parameter optimization? (ii) running the same analysis with identical number of cores delivers identical results?
It would be important to know what tolerance you use to quantify the overlap, and whether rerunning the optimization with the same number of cores provides better stability. If not. the issue doesn't depend on the number of cores.
You are obtaining 2 Mio features. In my experience, it's an indicator that (i) you are picking noise, or (ii) your samples are veeeeery different, i.e. from unrelated batches.
If the same issues shows up, it would be useful to have access to the data.