Usually git-client plugin is using the git that is installed on the machine. Afaik you can also make it use jgit (not for large repos). You can configure under Manage Jenkins → Tools the git installations, there you also have the option to install it automatically, but I don’t know how well this works when you have different platforms. I think most people rely on the git that is installed on the machine.
The timeout is configurable, when configuring a pipeline or when using the snippet generator click on the Add at Additional Behaviours and then choose Advanced clone behaviours. For checkout timeout choose Advanced checkout behaviours
Receiving objects: 92% (1512/1643), 15.01 GiB | 17.85 MiB/s
Receiving objects: 92% (1522/1643), 15.03 GiB | 17.91 MiB/s
error: index-pack died of signal 15
fatal: index-pack failed
Lately, git clones for larger repository randonly fails with fatal: index-pack failed. We don’t see issues with repositories less than 1GB while performing scm checkouts.