Nothing in the above code is wrong. It turns out that the invisible swf that ZeroClipboard creates to capture clicks was being created successfully, but at the wrong position. This is due to the button being positioned via css transforms, and is a bug in ZeroClipboard itself. Hopefully this pull request will be merged soon.
For now, I just manually applied the patch (8 lines or so) to the version of ZeroClipboard I'm using.
For reference this affects ZeroClipboard v1.2.0-beta.1