I think you should be happy with Jellyfin. I will however warm you that the Android TV client for Jellyfin isn't very polished, and mine craps out and crashes every 8 or 10 videos that I play. I haven't found a resolution for it yet, but the Jellyfin subreddit is full of complaints around the same issue.
You will also need to disable the transcoding on Jellyfin, as per below, otherwise it will try and transcode EVEN if the media player reports that is is capable of direct play.
View attachment 1037552
You will also need to turn off this setting, otherwise you won't see the username in Jellyfin on the client:
View attachment 1037554
4GB should be more than plenty, pity about the fried RAM port though. I only have 8GB because I had some spare modules gathering dust. I ran most of the above services on a 1GB Pi 3 but Unifi and Jellyfin are notorious RAM hogs.
WRT Plex, I believe that it is because Plex doesn't use local auth to authenticate the users so it requires internet otherwise it refuses to play media. The Plex forums are also full of threads regarding people not having access to local media with no internet connection, which sort of defeats the purpose of locally hosted media.
The custom BIOS was done to mine before I got it, and it is as you said highly recommended. I have used the ODD SATA port for my boot drive, so that means that I have 4x drives in SnapRAID with mergerfs enabling full access and saves me from using one drive for the OS. I also like keeping things separate which makes admin a bit easier.