Clear the heap?

Thank you for the replies. All of you seemed to answer each other's questions. I had everything in F() macros at one point but I removed them because I've read its quite slow compared to not using it. I first removed it from XML_response() because I wanted the web server to respond quickly. I figured since I was only using 13% of static memory I'd remove the rest for the same reason. None of these changes stopped the software hang. I've tried two different main boards, by the way.
Another thing I've added is the green LED breathe. It fades on and off slowly so I can see if it's still running at a glance. Wont tell me where the code locks up but it's better than nothing. Line 95 of LCD_update().
As far as the hanging goes, I'm not always home when it stops running. Hard to sit there and watch it continuously. I pull up the web page from my phone several times a day however. As of 6:25 AM CST, it's been running for 50 hours. I reset it Tuesday night at 9ish PM.

@DeltaG: I'll look into memset and strstr. I've wondered about the functions I'm currently using since they contain while()s. Any examples you know of off the top of your head will be appreciated. I wonder if I really need anything like that at all since all the webpage is sending is "/getIO" or "/getIO/1 - /getIO/8".

The sketch has no calls to malloc() and only one String.

I was thinking that in setup the last line could be something along the lines of "permanently set aside another 1k of ram" after everything else is initialized to create a buffer between static and dynamic memory. I dont know how to use malloc() yet but I would imagine it would be something along the lines of malloc(1000);.

Any suggestions?

Thanks again for all your help.