Having some sort of watchdog would be nice, but difficult to do properly. Since it just kicks off a port process for each build, it isn't watching processes come and go directly, so it can only watch that one port process. A simple timeout would be bad for ports that are known to take time (eg, ghc, the gcc* ports, etc) as we may otherwise be stopping a build that was going just fine.
Perhaps some sort of monitoring of the log file being created, as output should be going there on a regular basis, and if not then it may very well be stalled. Are there ports which, even in debug mode, output very little during a successful build?