lsmod/rpcinfo output from one of the servers is attached.
I'm quite sure that it's a client issue, though; perhaps I wasn't clear enough
on this, but I've tested with several different clients, and locking does work
on some of them. Similarily, on a given client, I always get identical behaviour
when connecting to different NFS servers running different OSs.
I'm at my wit's end when it comes to working out what the difference between a
working and a non-working setup is, though. But you are right, I've probably
messed up the configuration somehow; I think the real "bug" here is that the
lockd error messages don't really contain any useful information.

I have a similar problem with pine, it hangs while working with locks over mail
folders mounted through nfs.
The problem started after the last update to the system.
Current system is RedHat 7.1 , kernel 2.4.9-6.

I still got this after upgrading to 2.4.9-13. I then noticed something that has
escaped me earlier, however. I got the following messages on nfslock startup:
Nov 7 09:21:24 indonesia rpc.statd[2410]: Version 0.3.1 Starting
Nov 7 09:21:24 indonesia rpc.statd[2410]: open (state): Permission denied
Nov 7 09:21:24 indonesia nfslock: rpc.statd startup succeeded
The problem seemed to be that /var/lib/nfs/statd contained a number of files,
including "sm", owned by root rather than rpcuser. I then did
/etc/init.d/nfslock stop
rm -rf /var/lib/nfs/statd/*
/etc/init.d/nfslock start
and everything worked!
Points worth noticing:
1. I've upgraded the entire OS, and also installed several "nfs-utils" updates,
since I started getting this problem, but it looks like the files have always
survived.
2. "/etc/init.d/nfslock start" would report success ("[ OK ]"), when startup
actually failed and the above mentioned error messages were written to the
system log.