Like you, i backup everything, and keep 5 (max) or 2 (min) backups ; and skip courses not modified for 60 days.
The difference of time for the same number of courses can be related to the number of users connected, number of actions (in logs), and datas in different tables (if you use lot of quizzes...).
Also, having your backup running while your users are massively connected, backups are less speed (and making backups also put more charge that your server must handle).
Like Ken wrote, you should really avoid DB using the Swap!
With 32GB RAM, i think you should deserve (at least) 20/24GB for DB, and fine tune it to use it efficiently. Ideally, the whole DB should be in RAM.