I have a large code base under source control (was subversion, now git). To compile the code and run the tests I use a set of 3rd party libraries. These libraries can be div
For the third-party sources, I think submodules are exactly what you're looking for. If you don't want to require the entire upstream history in every clone, frontend the upstream repo with your own, containing a handcrafted branch with just the necessary history. Look at git commit-tree to see how to make those, it's easy. The commit id's won't match the authoritative upstream, but the tree id's will.
For binaries, git annex seems to be the most-recommended way to store content that's doesn't fit well with git's source-diffing focus. I haven't used it myself but the design looks ready for production use, it also supports multiple independent `repositories and looks about as convenient as it could reasonably be.
This isn't turnkey, so it doesn't really meet your third, but it nails the rest and what you need is straightforward use of basic tools.