Going to Trunk Bay will involve a cab ride to the ferry dock, a possible wait of up to an hour there and a ride to St. John of at least 20 minutes, followed by a taxi ride to Trunk
Bay. The return trip will follow the same routine. While we did all of that and still did some shopping in Charlotte Amalie, we were also fortunate in that we had no long waits for the ferry (you gotta know the schedule ahead of time). If snorkeling is not a priority, I'd opt for a cab ride to Megan's Bay (takes less than 10 minutes) and spend the morning there. It is rated as one of the most beautiful beaches in the world and has all the facilities there that you could want. Take a cab back to town and shop 'til you drop before returning to the ship.