True, but Discourse has a few exceptions, like stylesheets that are served by ruby, so having a caching CDN means those requests doesn’t use up the unicorn processes.
Regarding the OP problem, the first thing needed is having someone knowledgeable do some performance analysis during peak hours and identifying what is the current bottleneck.