There is a couple of small Island in the western Caribbean, that have not really been discovered yet by American divers, that is a wonderful place. Depending on what you like would be which Island I would recommend.
San Andres is a resort island with around 100,000 people and all the amenities, 5 star hotels, casino, crowded beaches, and great diving, some snorkeling. Great Island, great people and fairly in expensive.
Old Providence is a smaller mountainous island with 5000 people no five star resorts, small family owned bed and breakfast type resorts and restaurants, deserted beaches, most of the island that is not developed is a dry tropical rain forest, diving is some of the best in the Caribbean with the worlds 3rd largest reef, plenty of snorkeling. Service is friendly and crime is basically nonexistent and prices are also inexpensive. You will have an extra expense for the island hopper to get to OP.
With 3+ weeks you could do both islands.
Contact me if you need any help.