Well this is a truly bizarre phenomenon: attempting to access any of the state properties appears to (retroactively, some how) render the entire object null. I can't even begin to imagine what might be causing this. I made a jsfiddle demonstrating the problem:
http://jsfiddle.net/asgallant/HV6W3/, but I can't replicate it with any manually made JSON string. According to JSONLint.com, the JSON returned by #getState is valid. I'm stumped. If it weren't for the fact that everything works correctly using a "ready" event handler, I would say it isn't even a problem with the Visualization API.
Searching the bug reports, this has already been filed (
here). I'll add my jsfiddle as supplemental information, but seeing as how that bug report goes back almost a year with no update from the dev team, I wouldn't hold my breath waiting for a fix.