Would Android's `repo` be a good solution to this?
Repo was born to resolve this kind of problem, but it might not be a "good" one. We (git/gerrit team at Google) are working on bring cross-repository atomic submit and other stuff to git/gerrit and our goal is to replace repo with git submodule.
Here're a very brief slides[1] and notes[2] about this topic at this year's Gerrit User Summit.
[1] https://docs.google.com/presentation/d/1qG1eAiDmyozZBiVE6R4A...
[2] https://docs.google.com/document/d/1a2eFhVr1HUiKOjhaRHn_89mf...