I feel like the gay movement hasn't reached critical mass just yet and that's the reason why the law is divided. Let's fact it, the surest way to get the job done is through a constitutional amendment.
Each state having a say is clearly not going to work. One state not allowing it and another state allowing it will just undermine each other in both directions. Rights will not always transfer over nor benefits like employment benefits.
Accepting homosexuality is going to be a big norm adjustment for people. Compared to decades ago, the gay community has made huge progress, but still not enough. Even in California - an extremely liberal state - the Prop 8 was closely split. You can look at that as glass half full, but doesn't change the fact that a lot of others share the same sentiment. A lot of it comes from misconceptions, myths, and religious propaganda.
I feel that if the gay community ever wanted to do this, they would have to get it through with a Constitutional amendment and for that to happen, they need to raise an exorbitant amount of money to complete a nation wide, cross demographic campaign that gets well known republicans and religious figures advocating their struggle over many many years.
The alternative is that you wait until all the baby-boomers and up die off.