Thanks - thought the .wp* timestamp check could be a problem but that's not it.
So, with
https://github.com/tschumann/sandbot...473cb1f5bd84d9 I got the following.
Half-Life works.
Half-Life with MetaMod works.
Opposing Force works.
Opposing Force with waypoints crashes.
Opposing Force with MetaMod crashes.
So I think the undefined symbol issue is fixed now (not sure why...).
Also, Opposing Force with waypoints works if .wp1, .wp2, .wp3 and .wp4 waypoint files are present (I noticed that running a non-waypointed map followed by a waypointed map generated these extra files), so it looks like some variable may be initialised with bad data to make Opposing Force CTF think there are four teams.