first of all, thanks for sharing the project, great work,
It seems to be a small memory leak, you can check ist very easy with your design, just add:
os_sprintf(buff, "%ld %lu", hitCounter, (unsigned long)system_get_free_heap_size());
in cgi.c
you can see that the free memory gets smaller and smaller with every page call.
I'm sure you can fix that,
looking forward for OTA updates,
Regards,
grooves