The NFSRestart handles the recovery of NFS record locks. If you configure it, it will keep record locks in a directory in shared storage and copy them onto the failover server and then restart nfs daemons so they recognize the locks held by clients.
In the "old" days, stale file handle was usually cause by the issues you have already addressed. The file handle is composed, in part, of the major and minor numbers and a variation in those would make the file handle unusable.
I assume you are failing over the IP address also. Make sure that the IP resource comes up after the Share so that they cannot attempt a reconnect before the Share is available.