The operating principle of load balancing between the phases is that the downloader would race ahead of the validator if the validator was not higher priority. But as such the validator takes over cycles from the downloader until the validator is starved for work. The confirmer is much faster than the validator, but must wait on validator completions and is totally block ordered. So the confirmer is given a higher priority than the validator. This ensures that confirmations will not get too far behind the validator. Typically (but not strongly) the difference between downloader and confirmer will be no more than the arbitrary download concurrency window (default 50k blocks).
This has the very significant advantage of maximizing data locality, as download->validate->confirm are all operating over the same data. When the required data is is RAM it's practically free in relation to SSD retrieval. This is in large part due to mmap paging and the possibility of getting into a thrashing scenario - where read or write and flush are taking up most of the cycles instead of a tiny portion.