
I have been able to resolve my problems, I hope that what helped me can help you too.
The setup
So as I mentioned before my setup is a FreeNAS box with a Behyve VM running ubuntu which in trun runs docker (convoluted I know, but docker!). The sharing of the data from FreeNAS 11 to the ubuntu VM does happen via NFS shares from FreeNAS to the ubuntu VM over the network (loopback as it is the same machine). With this mechanism I had shared the media (/data) and the configuration (/config).
As I knew that transcoding is I/O intensive and I did not really care about persisting this data it was mapped to the local file system in the VM (FreeNAS zvol—> Bhyve VM/Ubuntu). The underlying physical disk was recently upgraded to an SSD.
The change
Now the big improvement happened when I decided to move the config (/config) to the local filesystem of the VM, i.e. not having it reside on the NFS share. From this point on I had no problems with streams being interrupted or seeking being a problem or chromecast suddenly dropping the stream.
A suspicion on the why
I encountered an article talking about that the plex DB (i.e. /config) should reside on a filesystem suppoting file locking. Unfortunately I do not have the link to the article that was talking about this, if I find it again I will try to post it.
What was also mentioned was that FreeNAS corral (Corral < 11) was using a special filesystem driver to expose the host datasets to the VMs and not NFS as I have replicated in the FreeNAS 11 setup. In that setup I had no problems but I had to migrate to FreeNAS 11 due to corral being downgraded to technical preview after release (big debacle…). It seems that the corral VM filesystem driver did not interfere as much as NFS with how plex expects it to work.
** Moral of the story **
Put your /config on the VM local storage, plex does not like having it on the network.
Pay attention to virtualization drivers to your VMs running docker, if you have options try them out.