For example, i was 3 weeks behind, it synced reasonably quick, but upon reaching 10 days or so, it took forever.
I think it has something to do with less processing of old historical blocks. I think it spends less time with processing and validating older blocks than it does with new ones because old blocks are already valid while newer ones may not be valid so those need to be validated as well.