Doing a bit more hunting it seems like if we could get Arcserve to use the nolock option then that would likely solve the problem, but there's nowhere to add any options and the Arcserve Proxy itself uses the Windows NFS client behind the scenes.
Right now we've worked around the problem by creating a separate, read-only SMB share pointing to the same location and using that for Arcserve instead. Our only concern now is what could happen if XO starts a job while Arcserve is still doing its own backup. 🤔
Edit: I did a bit more Googling after posting the above and came across this thread: https://www.truenas.com/community/threads/nfs-the-process-cannot-access-the-file-because-another-process-has-locked.12644/ ... which suggests that it's actually a long-standing TrueNAS bug.
Buried within the comments is this suggestion:
If you're having trouble with the NFS locking mechanism, and you would like to use the "NET USE" command, or the [WNetAddConnection] function to mount a NFS share without locking, there's an undocumented registry entry hidden in the NFSNP.DLL:
"HKLM\Software\Microsoft\Client for NFS\CurrentVersion\Users\Default\Mount" REG_DWORD "Locking"
If the value is "0x0" then locking will be disabled globally.
If the value is "0x1" then locking will ben enabled globally.
We'll test it and report back.