I have seen a lot of posts regarding one problem with the EthernetClient library. I have read about a lot of complaints about the read routine blocking.
Well, I have developed a read routine that does not block. I would like to submit this to the Arduino Ethernet library so others can use this.
I would recommend you to post your library here(or a link to where it can be downloaded from). Make sure you have updated the examples to use your modified read function. Hopefully some forum members might review it and give you feedback.