Network comes before Applications. So even if your Moodle server is just fine and doing all it can do, there still might be network issues that makes it *appear* to be a Moodle issue. Although, many have started reporting slowness with Quizzes (considering what Moodle has to do to provide a quiz to students, it's somewhat understandable. But, 'locking up', such you've described sounds more like in-complete rendering of pages in a browser - which shouldn't require a restart of the machine, but, rather, quitting the browser instance, and launching another.
In your summation, see 'ISP to a cable internet' and 'new service area for them and they just installed the lines and hardware'.
A quick explanation (poor one at that) about networking ... when a user uses a browser and request something from a web server ... any web server ... it does so by making 'request'. Those request are not a single thing going across the connections, but multiple and each piece (packet) has a TTL - time to live - built into the packet. If the packet arrives at the server and the server attempts to respond it ships out as fast as it can more packets.
If a packet of info can't reach it's destination within the time allotted in the TTL (time to live) the packets kill themselves ... obliterated ... blown to data bits ... gone ... killed on the wire. Means server or station requesting info get/sends incomplete information as the packets responding to or requesting never arrive.
Bad routing can cause slowness and behaviors such as you are describing.
One way to test if it's a network issue is to do multiple traceroutes from both ends ... workstation to server ... and from server to workstation.
Both PC's and Mac's have command line utilities to trace the route. On a Mac having such issues, from it's terminal, try this command:
Like traceroute www.google.com
On a PC, think the command is tracert
If the network isn't locked down completely one will see a display of the routers/switches from the Mac to the destination. 30 hops is normally the max. If traceroute cannot reach destination within 30 hops, it will die.
On your server, it too should have traceroute. And, your apache server does log workstation IP addresses accessing it. From the server terminal using traceroute, trace the route back to one of those IP addresses.
So, as an example, apache logs show an IP of 220.127.116.11x accessing something Moodle. So traceroute back to the work station would be:
That trace will probably NOT reach the workstation as they are usually protected from direct access via a firewall ... actually, the IP address you see might be a gateway IP address from which multiple student machines come.
Comparing those traces (workstation to server - server to workstation) sometimes give clues - like double hops and times that should be 30ms or less in the range of 900ms or higher. Ok, ms = milliseconds.
If it turns out to be a routing issue ... you cannot, by yourself, or any tweaking to your Moodle server ... fix it. It's up to your provider. They too might have to contact other networks to get the routing optimal.
For info on traceroute: http://bit.ly/1bcHwkj
'spirit of sharing', Ken