I had over 200 incoming HTTP connections from the Arduino's IP. It appears that the Wiznet can only support so many connections and when too many connections are open, it will cause client.connect to fail.
The Arduino can support 4 connections, max.
I guess the big question now is how can I tell the Arduino to only phone home once every 30sec or so and still be able to read cards in between pollings? Because it has to be able to read a card, I think that delay(5000) is out?
It is. Think about how YOU would do it, given a watch and a piece of paper (to write down when you last checked). Then, look at the Blink Without Delay example to see how to translate your method into Arduino-ese.