what tools/services would you recommend for pulling metadata from ERC721 contracts? It seems like it's going to be a huge hassle to return the metadata directly from the blockchain. Any clever ideas?
You need to return some information from the blockchain, otherwise nobody can know which source is authoritative.
Typically, people set up the contract to return URLs. (ERC-721 allows URIs, a superset of URLs).
Here is one such URL for the Su Squares contract: https://tenthousandsu.com/erc721/00050.json
And accordingly, that is the URI for the Su Square token with tokenId = 50.
You can query those URLs from the blockchain using JavaScript Web3.