In case anyone is in the same scenario I found myself in, it turned out the failure of images to load in the Twitter card previews had to do with HTTP headers. It was confusing at first because sometimes the Card validator would green light all fields, other times display the “Failed to get a proxied URL” message. But either way no image would load.
Finally realized that one of the directories from which our images (used in the Cards tests) were being served had specific noindex,nofollow robots headers being sent out. Was to prevent random non-image files from being indexed by Google et al. Took some testing to eventually realize Twitter’s system was respecting these headers as well. Disabled these noindex headers on the images directory and all is well.
This tool is helpful to check your headers:
http://web-sniffer.net/
Hope this helps someone.