The problem (other than it being a Microsoft software issue that needs "real fixing") can be somewhat mitigated by using the following techniques. I have both a 15" 2019 MacBook Pro i7 and a 2018 Mac Mini i7 6-core using an eGPU and Radeon 5700XT pushing 4 monitors. So there is plenty of power behind my systems and yet the Teams renderer issue is still a problem and is most definitely flawed in its current state.
That said, first, the system being unusable is directly related to how large the window with all the video from people in the meeting is made on the screen. When maximized on the screen on one of my 4k monitors (3840x2160) the system crawls and is unusable. When I shrink the window to its smallest possible size (about 1/8 full screen) the system becomes much more responsive. Basically makes your desktop video conference more like an iPhone Facetime session. This doesn't help much when someone is sharing their screen and you need to actually see it, but otherwise it makes a big difference.
Second, you can further lessen the effect of the renderer on your overall system performance by reducing the app's processor priority in macOS. I'm running 11.2.3 (Big Sur) and this helped considerably.
- Launch "Activity Monitor" in your Applications/Utilities folder. Find the app in question "Microsoft Teams Helper (Renderer)" in the list of entries when on the CPU tab. It will only be listed there when you are in an actual meeting. In that row there is a column labeled "PID", or process ID. Make note of that number.
- Launch a terminal window and use the following command to reduce the overall processor priority for the renderer.
renice -n 10 -p {PID}
Use the number you obtained in the first step in the above command you enter in this second step. Hit return.
That's it! You should see a considerable improvement in how responsive your system is while on a meeting. Hope this helps you all out until Microsoft wakes up and takes care of this issue that's lasted more than a year. Keep in mind that you will have to do this each time you join a new meeting as each new meeting gets a new PID. So it must be set each time. Yes, annoying I know.
Here's more detail on the command above for those that are interested...
The -n option changes the nice level by adding 10 to the current value (0 by default). The range of values are -20 to 20, with lowest value meaning highest priority. As an ordinary user, you can use values 0 to 20. To assign a negative value, you need to have root privileges (e.g. use sudo command). Read more about nice and renice by typing "man nice" and "man renice" in Terminal.
Nice and renice do not limit the percentage of the CPU availability to a given application per se, they do however allow for changes to the scheduling priority, or in other words how much of the CPU time a process will get. This is all relative to the CPU load on a system. So if the system is under utilized it will have no noticeable effect.
// Reduce a process' CPU priority
renice -n 10 -p {PID}
// Return a process' CPU priority to normal
renice -n 0 -p {PID}