Thanks for sticking with me in the thread here mrjo118, your diligence is appreciated even though we seem to be stymied still.
I tried chmod -r 777 on both directories, still no dice.
Interestingly, when I change dav to webdav in my sync target URL, I get an error in the "Check Sync Configuration" view, then when I actually sync, it hangs for quite a few seconds, and I get a slightly different error:
MKCOL locks/: Parent node does not exist (Exception Sabre\DAV\Exception\Conflict) (409)
Which is different from what I was getting before:
MKCOL locks/: Permission denied to create directory (Exception Sabre\DAV\Exception\Forbidden) (403)
The only other error I'm seeing regularly is the GET info.json one.
I'm also a bit stumped, and pretty bummed that there doesn't seem to be a way through this yet. Maybe I should start asking on a Nextcloud forum instead, even though there is definitely something going on with Joplin since it works fine on desktop, just not mobile.