They are housed on a FreeNAS server and readonly (readonly mount might be the issue?)
I added a new rip to the music store last night and this morning it’s still not showing the the core lib. With a previous addition I had to do a manual scan.
Any ideas why the “watcher” element seems to be asleep?
Because inode watches over network mounts are unreliable/broken at best (especially for SMB, though your mountpoints suggest you are using NFS).
Also, default limit for inode watches is something like 8192 inodes, so if you have a lot of music folders (e.g., a hierarchy of artist->album->tracks), you will exceed that. You can increase this with kernel sysctl, and needs to be set on both the client (Roon Core system) and the file server. Increasing it has a cost in kernel memory usage. (Note that large libraries connected locally (e.g., internal/USB SSD/HDD) to a Roon Core running on Linux are also subject to the maximum inode watch limit.) This is an OS-level limitation, and not something Roon can fix.
When using Roon with networked music share, you either need to initiate a manual library scan, or wait for the configured auto scan period to come around. The auto scan period is configured in the Roon preferences.
Personally, I prefer that Roon doesn’t do real-time watches from my Synology music share. I prefer to copy music in, make sure the meta data tags are all correct, etc. And then kick off a manual scan in Roon so it gets good metadata right from the getgo.