The Distributed settings will not affect the bg or process engine or multicast in any way.
Those are settings only for the capturing of transient UI data (e.g. things you type into text filter fields for example) for your session whilst logged into the app services using a web browser, when your apps are clustered.
The process engine acts greedily towards any processes it needs to operate on, and this can be seen especially at the time of restarting services and the respective process loaders start up in each one and they try and scoop up all the processes to work with.
For processes that appear to be on a process engine that isn't functioning, there will be a grace period before another process engine will inherit their pending actions and take it over.
Once all these things are addressed, then for new incoming process instances they will be grabbed by whichever process engine wants it first. This may still appear unbalanced based either on network timings and coincidences, as well as the process engine simply not being burdened sufficiently that it still feels capable of being the first responder to a new request.
Do all your settings for the process engines in your CSA for these servers look the same as this?
If so, then there should have been some kind of problem that resulted in the heartbeat not being registered within the allowed time window. Without further evidence pointing to problems with the multicast threads and libraries in the logs prior to this, or perhaps a mention of memory issues in those logs before the problem began but after the services were last restarted, then you would probably want to open a support issue if it continues to return.
It may be prudent to keep an eye on the heartbeat times (if you can periodically check on the bpm_run_process_engines table for the heart_beat column value where end_date is null) so that you can try to anticipate the next occurrence before the heartbeat is flagged by the system as too old (a 2 hour window, so if you could check/monitor every 30 minutes perhaps?). This would allow for a window of opportunity for collecting any statistics/data such as thread or heap dumps as needed to further analyse the problem if considered needed or useful.