If I swap out the config files so that Nginx runs php stuff through Apache, it all works perfectly.
I've checked all of the php upload size/post size/etc variables, and they look fine. I'm wondering if it's not some fcgi stuff in the nginx conf. Maybe a connection timeout problem or buffering issue... not sure. Any suggestions on where to start looking?