Thank you, I had most of those but the trick seems to be making sure you set your WM to LG3D *after* ewmh does it's thing. At least that seems to help.
Yes, because ewmh forces the WM name and the combinator form does so after all of your code. I'd like to see a better way to do that, possibly another combinator.