If you are considering Mexico, why not Coxumel? It is absolutely beautiful, layed back and the snorkeling can't be beat. The island is located along the worlds second largest coral reef. Jacques Costaeu (SP?) filmed many of his specials here.
I know that the part of Cozumel you see when you stop on a cruise ship is not so impressive, but believe me the island is gorgeous and you come to know the town as quaint. We stayed at an all inclusive two years ago, the Grand Occidental Resort. It was great, the rooms were HUGE, the service exceptional, and to snorkel we waded into the water right off the hotels beach! You could also arrange for an off shore snorkel tour. Then if you get bored on the island there are ferries over to Cancun and Playa del Carmen.
We too love St. John, but found a new love in Cozumel and will be heading back this February!