Ok. To look into it further would probably need an example thread dump to see which logic it was stuck in, and some more details on the setup.
Materials for the same repo are generally shared unless you're using something special like the git path material plugin with different subpaths.
If it really was just the raw git clone speed and amount of data to be cloned, shallow clones won't help as they are ignored server-side - IIRC it needs the history to give GoCD's fan-in guarantees (and don't think it has any special logic to use shallow clones if there are no existing pipeline runs with history for that material, a switch a fresh database).
GoCD right now doesn't support blobless or treeless clones which is what would possibly speed this up server-side, if that was the root of the issue (since that filters the repo to basically the log, without content).
-Chad