Arduino Ethernet Sheild - does not maintain connection open?

What client do you use to check this?

As it loops, the server.available(1) is true only while data is available then is closes the connection?

No, this isn't true. BTW. the call is

EthernetClient client = server.available();

I don't know where you got your (1) from. This call returns the first open connection.