How flexible is modification of the workloads? There are utilities such as nice that can limit priority of processes restrict just how much of a slice they can ge.
https://www.geeksforgeeks.org/nice-and-renice-command-in-linux-with-examples/#
But as you have already noted, this solution is not perfect because the issue here will likely be that when only one user is on, they will not be able to use the system to its fullest potential. And that may just be a new isue.
Disk IO, others have asked and worked out solutions such as the answer here https://unix.stackexchange.com/questions/536007/cgroups-throttle-per-user-disk-i-o-bandwidth-on-linux
I am afraid there probably will be no perfect solution, this is why things like virtualization have become so popular to make more efficient use of shared resources.
Like all things linux, there are likely more work around out there (and maybe even systems designed to leverage them)
IMHO to do this correctly would likely require some scheduling at the kernel level, or some interface to use scheduling options already there, I am not aware of any. ...But I have been wrong before, so if someone else chimes in with a solution, I will learn too!
So the answer may be that there is no answer without accepting concessions.