Your agent is correct. 11am is pushing it. Not that it is impossible to make an 11am flight, but you can't have any glitches. For instance, on our last cruise out of Miami (Liberty Of The Seas), on debarkation morning Customs suddenly lost their computer network. And guess what? They have no manual system to clear passengers so everything immediately stopped for close to 45 minutes until they got the computers running again. Lots of sad and angry people with early flights which they missed.
Noon or later is a better idea.
As for Atlantis tours...not cheap. This link has the choices for Nassau tours.
Welcome to Cruise-Chat. A four hour window of time for an inbound flight would be far too close. But for an outbound flight I think you should be okay with 4 hours since the Miami airport is only 8 miles from the pier. If it were me, I'd book the low cost flight at 11:00am. Just be sure and bring a copy of your flight itin and provide it to the Pursers Desk and ask for "Priority Disembarkation". They should be able to get you off quicker that way.
If you really want to be safe and don't mind toting your own bags, you can self disembark. Just let them know you'll carry you own bags and don't put them out the night before. When they begin the process you just get off with your bags and grab a cab.
Just remember that if you happen to miss the 11am flight you will play hell getting on another flight that day - especially if you are flying home on a Saturday or Sunday. Those are the big cruise days at MIA and open seats on flights from noon to late afternoon are quite difficult to find.
If you're willing to do self disembarkation, then you can make your flight with plenty of time to spare. When I was on the Majesty for my vacation, I would have been the last group off the ship at 9:30 am (we docked at 7:00 am) and would have been cutting it way too close, so I did self disembarkation, but that is the first and last time that I will book a flight cutting it that close. To be safe, I would look for flights starting at 12:30 pm or later.
As an FYI, I did self disembarkation and was at the Miami airport by about 8:30 am for an 11:00 flight.
2007 - Majesty of the Seas (Bahamas)
2009 - Enchantment of the Seas (Western Caribbean)
2010 - Freedom of the Seas (Western Caribbean)
2013 - Golden Princess (Alaska, roundtrip from Seattle)
I would be nervous about an 11 AM flight. Keep in mind you have to be there way before 11 AM. Why end a cruise with worry and stress about making a flight? Unless there is some pressing matter, book the later flight. Make the most of it, stay out late and get up just in time to get breakfast!