By default, updating submodules doesn’t show progress. And since many Git repos will have a relatively slow download, this can cause the appearance of hanging (and it’s happened to me multiple times).
To make sure this isn’t just a case of a large, slow download, run the update command with the --progress option.
git submodule update --init --recursive --progress