This is a toughy but Ill see what theories might point you in the right direction.
First it must be determined whether it is a network problem or an internal problem, being the hardware or operating system in the pc.
Network check:
Im sure you know several netstat, ps, and sockstat commands and arguments so I wont discuss those if anything.
I like using nmap. Yes a port-scanner.
If you are behind a firewall of anytype. First scan the machine running Apache, Sendmail, from the machine itself.
If that s successful scan it from another machine local and behind the firewall of your network. If that is successful, then scan your firewall. If that is succesfull, then check to see if your ISP is giving you a dynamic ip, static we all know doesnt change so I wont discuss that. But a dynamic address, depending on your ISP, can change rapidly. Many cable companies do not like their customre serving anything and therefore will block or dump your server activites.
And one more thing sacrifice harddrive space by running TCPDUMP to monitor your network activity. Leave it in promiscous mode. That will keep live network action without you doing very much other than observing activity. My freind who use attbi or adelphia havent really had that problem(YET).
That covers some of the network troubleshootin. Now as far as the system is concerned, Its more complicated.
Segmentaion faults, signal interrupts, etc. are obvious and could happen hours after boot time. Your current terminal may freeze but you may be able to use other terminals. Thats not worth it. You may need to keep rebooting the system over for every interval that event happens. If that error emerges, it not may be bad memory in itself but a bad combination of memory. Unix/Linux are very sensitive when it comes to hardware. They do not like wierd ram or hardware combinations and may not even let you boot at times. Others they will operate for a limited amount of time and repeat what ever other errors happened before.
Im not an apache, or sendmail admin to walk you through a check of those servers. But it wont hurt to run through them since you know them, and look for any time limiting or manipulating parameters. Like on a dial-up or pppoe connection on a network (which i should have mentioned earlier), "keep-alives" or synonymous statements of that sort. I dont think inet.conf has that option that I could think of, but comment out any servers you dont need on like tftp, or anything like that, check your rc.conf or whatever the name of the config file is, you get the idea, the file that allows you to start services, on system startup.
The best but most expensive trick of all, run bsd with your same kernel on a whole separate machine, that step should even be tried before anything I discussed prior to this. Other wise enjoy, hard and time consumng work, along with reading howtos and getting hit and miss responses from people.
good luck .. .I hope this helped somewhat..