If you want them to be alerted then a local program would be fine. If you want to be alerted and not on the same network you'd want the monitoring off net. Monitoring on a loopback to the routers external address wouldn't be practical since you're not guaranteed the same address, nor is it wise to open unnecessary ports to the internet. You can do some simple connection tests with powershell or even just ping,tracert and DNS lookups to test.
You actually can guarantee the same address by setting a static on the computer in question. Opening unnecessary ports isn't typically recommended, but as long as they aren't open to vulnerable services you will find them to be quite safe. Besides the server wouldn't have to be open 24/7, only when the in-laws are using the computer.
However, there are a couple problems with doing a connection test via powershell, ping, tracert, or any other off-net tools:
1. Simonmason will have to use these tools repeatedly throughout the day, which may be a waste of time. On the other hand, a client/server relationship can be tweaked to notify him of connectivity problems in real-time.
2. "Off-net" tools will only be able to read the connectivity of the network itself, not the computer's connection status to the network. (There may be issues internally - the computer can't connect at all, the computer connects to the network but not to the internet, IP configuration issues, etc)
Although simple off-net connection tests may suit simonmason if real-time or scheduled updates aren't necessary, a client/server relationship is indeed more practical.