It can be misleading as it often freezes the UI while synchronizing.
This isn't supposed to happen because the Qt window is supposed to be in a separate thread from the transaction verification thread, and there's only one verification thread only, unless the UI is sleep-waiting on the verification thread to finish (??) in which case it makes sense that it freezes because the verification thread is constantly waiting on disk I/O.
Your CPU usage while Bitcoin Core is freezing is fairly low, right? The other way it would make sense that it's freezing is when you're low on memory and Core "thrashes" the disk with more dbcache that it has to move between disk and RAM.