The absolute best setup I've found is Infuse (https://firecore.com/infuse) with Plex as the backend. Infuse will ALWAYS request the raw video/audio stream and does all the decoding on the Apple TV, so your Plex machine can be very modest (it's never transcoding, after all).
You can also forego Plex and just have Infuse index all the content, but I've found that it's nice to have a single Plex backend that can be shared amongst multiple Apple TVs, iPads, etc.
Transcoding is obviously a last resort, but I've used it on rare occasions for streaming live and recorded TV from home to the Plex app on my iPhone and it works reasonably well. For my home theater stuff I absolutely don't want any transcoding at all, and Plex is generally smart enough to figure out what formats my playback device is able to decode on its own. When I first got a Chromecast Ultra, I had to fiddle with some XML config files in Plex because Plex was only aware of the non-4k Chromecast and thus would try to transcode 4k content, but I believe that Plex resolved that issue fairly quickly.
I've also tried running Plex server on my Win7 HTPC with the volume mounted over CIFS, but I had various issues with that; for one, having to reindex the volume means I have to either wait 15 minutes to watch something I just procured, or manually login and force a refresh which is annoying when I just want to browse files. It's been awhile, but I have tried a number of approaches (including Plex server on OS X) and none of them were satisfactory. Furthermore, I could never figure out why any of it was preferable to simply having a media player read files from a network store and play them. I don't care about "album art" type stuff; I don't download/store/play hollywood movies or music, so those features would be irrelevant even if I cared about them in general.
The one nice thing about Plex is I now have a few friends sharing their libraries with me over the internet. It's a cool feature, but I'm only using it from the client side, and I typically forget to even consult their libraries before paying to rent content.
As for Plex wanting to transcode things, I mentioned having some issues with my Chromecast Ultra, but even that wasn't too bad. There should definitely be an option to not transcode video at all and let my playback device tell me that if it really can't decode the file. As far as I could tell, that option doesn't exist.
I haven't had any issues with library refreshing with Plex on my iMac and movies shared over SMB from my Linux file server. Plex seems to watch the shares and do small incremental refreshes for new content very quickly.
> I don't care about "album art" type stuff; I don't download/store/play hollywood movies or music, so those features would be irrelevant even if I cared about them in general.
That's definitely valid. Wouldn't basically any playback device that supports DLNA (and can decode your files) work fine for that? For me, the library features are pretty important. I had done a lot of work getting Kodi on my Raspberry Pi setup how I liked it, then I switched to Plex which is just as good or better but with a lot less work and maintenance.
For me, using Plex is an utter and complete nightmare. Anything with transcoding and library reindexing is a no-go. I've tried to be happy with it at least 6 times, and each try was an unmitigated disaster. I just want a thing to play files from storage.