As well as setting deltaBaseCacheLimit, you should make sure you're using a current version of git; there was a period where git verified downloaded objects in an extremely paranoid and expensive way that took many times longer than normal delta resolution. I forget exactly which versions had that issue, but 1.8.4.x is current and is definitely okay :)
It is kinda a case of O(n^2); the problem is that near the end of the process, some of the objects being resolved are delta compressed against earlier objects which are delta compressed against earlier objects which are delta compressed against earlier objects... repeat for many levels. The core.deltaBaseCacheLimit setting helps with this by making git more willing to cache old objects in memory while resolving deltas, but the full uncompressed size of every object in the repository is pretty massive and so even a large cache can't hold everything. Whenever the cache misses it has to go hunt down and decompress every object in the chain from the start. It gets slower because the later in the pack you are, the longer chains can be.
Blink's horrendous deltas are basically caused by LayoutTests. Large numbers of big, non-static binary files are basically git's nemesis. :/