Didn't know Unity relies on a garbage collected language. How do they deal with the mark and sweep pauses?
How does Unity coupe with pauses?
In two ways, by using a somewhat modern GC, mark and sweep is like "introduction to tracing GC" 101 CS. So pauses are somewhat minimal.
.NET also supports value types and explicit memory management, if one wants to go down that route.
Which they do, with their C# subset for high performance code named Burst.
Maybe you know Mike Acton of Data Oriented fame, he is one of the lead architects at this infrastructure.