I would also highly recommend Cuba. Was there 2 years ago and it is unique and very exotic - like stepping back in time, very safe and great people who dance and drink rum all day...lots of fun. Stay in casa particulares (with families) or hotels.
I would suggest 2 weeks in Cuba - enough time to see Havana, Trinidad, Vinales and then somewhere else that grabs their fancy.
Then fly back to Cancun, jump on a ferry for 15 minutes and spend the last week on Isla de Mujeres, a very easy island to stay on.
"Isla" is Mexico's equivilant of Byron Bay - being the most Easterly point of Mexico. A tiny island, well suited for tourists, but no high-rises and a million miles away from Cancaun. Fun place to flop on a beach and have waiters bring you coughtails if you like that sort of thing. Surrounded by stunning aqua Carribean waters for scuba diving and swimming. Great fresh seafood restaurants abound and everyone drives around in golf buggies with a speed limit of 40kms...kind of sums up the speed of the island. Muy tranquilo (very relaxing) way to end the holiday.