We would like to fully manage what threads certain tasks get assigned to, what is the preferred method of doing this?

Just a quick update, we did try the change recommended to prevent foreground tasks from migrating to background and can confirm this does not help. We did try increasing the number of foreground workers from 2 to 4 which improved things. But despite trying various thread affinity settings in order to keep systems running on the same cluster (consoles only) including this change we are not able to improve CPU performance over the default setup. So have come to the conclusion that the hardware knows what its doing and manages cache usage and balances core work loads really well.

This ticket can be closed, thanks for the suggestions.