Infield Fly does not need to be caught. PERIOD.
In the right situation (runners on 1st & 2nd, less than 2 outs) a fly ball hit with appreciable height that will land in fair territory at a location that an infielder can get to with ordinary effort... SHOULD ALWAYS BE CALLED AN INFIELD FLY and the batter is then declared out. The only time this call should change (after you have called it) is if the ball lands in FOUL territory.
There is nothing in this rule about wind, rain, or sunshine... unless YOU make some kind of a determination that "ordinary effort" includes these variables of nature. (There may be those that will disagree with this statement but in the end it is you on the field that will have to make the call and live with it. This would be another and likely heated discussion.)
I learned early in my career to stick by my call. If I call "TIME," then everything must stop - even if my call was incorrect. Make appologies and move on. If you called "Infield Fly, the batter is OUT," then you've got to stick by that call. PERIOD. Your call influences the playing action. Perhaps it was because of your call that F6 let the ball drop - F6 says I've already got one out, let's see if I can confuse someone and get another.
In your case the batter should have been out and the runner from 2nd can advance if they want, but should only be called out if tagged.