So interesting development.  I think that has nothing to do with vlc or the plex app directly (though it be nice if the plex app was capabe like vlc so could transcode less) but all to do with name resoution.
digging in.
I use OpenVPN to enable an across the pond VPN connection to a raspberry pi I left in my parents home in the states.
I decided to try again without remembering that the vpn was on and things worked!.
so I turned it off and things didn’t work
so lesson: when I have my AndroidTV connected to the VPN, it is able to stream my high bitrate streams from my local (nearby) server, with varying degrees of success (but isn’t a total failure).  Could be bugs (aspect ratio is off) or network issues (stuttering) or both.  However, when I disconnect the vpn, it resumes previous behavior and doesn’t work popping up an error message.
so lets dig into Plex Server logs on the server.  is it connecting differently?
In the case of the VPN it shows its connecting from the local network ip 192.168.0.123 (the ip of the TV), and same as when it connects without the vpn.  so its always treating it as a nearby server (which makes sense as I have the vpn configured to not interfere with local lan traffic)
in both cases plex server logs shows that it makes same decision (copy video / transcode audio).  so that can’t be the reason.
so I looked further.   opened up the logs on the tv
04-20 22:04:47.817  i: [FFmpeg] [INFO] [Cache] Opening source from https://192-168-0-81.42d758ef4eeb4015917d624f0ab56251.plex.direct:32400/video/:/transcode/universal/start.m3u8?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&includeCodecs=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=209664&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F39873&protocol=hls&session=3830d3f30e978bba-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=3830d3f30e978bba-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Client-Profile-Extra=add-limitation(scope%3DvideoCodec%26scopeName%3Dh264%26type%3DupperBound%26name%3Dvideo.level%26value%3D52)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.width%26value%3D3840%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.height%26value%3D2160%26replace%3Dtrue)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dmp3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Deac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Ddca)%2Badd-transcode-target(type%3DsubtitleProfile%26context%3Dstreaming%26protocol%3Dhttp%26container%3Dmkv%26subtitleCodec%3Dsrt)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dmpeg2video)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DMatch%26name%3Dvideo.profile%26list%3Dmain%7Cmain%2010)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dhevc)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DNotMatch%26name%3Dvideo.anamorphic%26value%3D999%26replace%3Dtrue)&X-Plex-Device=BRAVIA%204K%20GB&X-Plex-Platform=Android&X-Plex-Platform-Version=8.0.0&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...Hywp&X-Plex-Version=7.31.0.16802.
04-20 22:04:47.827  i: [FFmpeg] [ERROR] [tcp @ 0x8f183000] Failed to resolve hostname 192-168-0-81.42d758ef4eeb4015917d624f0ab56251.plex.direct: No address associated with hostname
04-20 22:04:47.827  i: [FFmpeg] [ERROR] [DemuxerPipeline] Failed to open cache.
04-20 22:04:47.827  e: [FF] Demuxer failed to open input from `https://192-168-0-81.42d758ef4eeb4015917d624f0ab56251.plex.direct:32400/video/:/transcode/universal/start.m3u8?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&includeCodecs=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=209664&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F39873&protocol=hls&session=3830d3f30e978bba-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=3830d3f30e978bba-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Client-Profile-Extra=add-limitation(scope%3DvideoCodec%26scopeName%3Dh264%26type%3DupperBound%26name%3Dvideo.level%26value%3D52)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.width%26value%3D3840%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.height%26value%3D2160%26replace%3Dtrue)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dmp3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Deac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Ddca)%2Badd-transcode-target(type%3DsubtitleProfile%26context%3Dstreaming%26protocol%3Dhttp%26container%3Dmkv%26subtitleCodec%3Dsrt)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dmpeg2video)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DMatch%26name%3Dvideo.profile%26list%3Dmain%7Cmain%2010)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dhevc)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DNotMatch%26name%3Dvideo.anamorphic%26value%3D999%26replace%3Dtrue)&X-Plex-Device=BRAVIA%204K%20GB&X-Plex-Platform=Android&X-Plex-Platform-Version=8.0.0&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...Hywp&X-Plex-Version=7.31.0.16802`.
04-20 22:04:47.830  i: [FF][MediaPeriod] Releasing.
04-20 22:04:47.830  e: [ExoPlayer][EventLogger] playerFailed [4.11, 0.00, window=0]
04-20 22:04:47.831  e: An exception occurred: com.google.android.exoplayer2.r: [Open]com.plexapp.plex.ff.data.FFException: Demuxer failed to open input.
04-20 22:04:47.834  i: [FF] Loading canceled (released: true)
04-20 22:04:47.834  e: Stacktrace: com.google.android.exoplayer2.r: [Open]com.plexapp.plex.ff.data.FFException: Demuxer failed to open input.
	at com.google.android.exoplayer2.v.handleMessage(SourceFile:29)
	at android.os.Handler.dispatchMessage(Handler.java:101)
	at android.os.Looper.loop(Looper.java:164)
	at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: [Open]com.plexapp.plex.ff.data.FFException: Demuxer failed to open input.
	at com.plexapp.plex.ff.FFDemuxer.open(SourceFile:31)
	at com.plexapp.plex.ff.source.FFLoadable.load(SourceFile:3)
	at com.google.android.exoplayer2.y0.a0$d.run(SourceFile:4)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
	at java.lang.Thread.run(Thread.java:764)
04-20 22:04:47.835  e: [Player][ExoPlayer] Playback error detected
04-20 22:04:47.835  e: An exception occurred: com.google.android.exoplayer2.r: [Open]com.plexapp.plex.ff.data.FFException: Demuxer failed to open input.
04-20 22:04:47.835  e: Stacktrace: com.google.android.exoplayer2.r: [Open]com.plexapp.plex.ff.data.FFException: Demuxer failed to open input.
	at com.google.android.exoplayer2.v.handleMessage(SourceFile:29)
	at android.os.Handler.dispatchMessage(Handler.java:101)
	at android.os.Looper.loop(Looper.java:164)
	at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: [Open]com.plexapp.plex.ff.data.FFException: Demuxer failed to open input.
	at com.plexapp.plex.ff.FFDemuxer.open(SourceFile:31)
	at com.plexapp.plex.ff.source.FFLoadable.load(SourceFile:3)
	at com.google.android.exoplayer2.y0.a0$d.run(SourceFile:4)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
	at java.lang.Thread.run(Thread.java:764)
that doesn’t look good, and the name resolution error at the top might be the reason.  which might also explain why it works when I setup OpenVPN as name resolution goes through it, not native.
so we note its trying to access https://192-168-0-81.42d758ef4eeb4015917d624f0ab56251.plex.direct:32400/video/
i.e. some fancy plex name resolution 
so I turned off “new video player” in advanced settings and things “worked” (well not as well as with new new video player and vpn, but worked without vpn)
so I look back at logs
04-20 22:05:46.690  i: [Exo2VideoPlayer] Using FFMediaSource from url: https://192.168.0.81:32400/video/:/transcode/universal/start.m3u8?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&includeCodecs=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=209664&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F39873&protocol=hls&session=3830d3f30e978bba-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=3830d3f30e978bba-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Client-Profile-Extra=add-limitation(scope%3DvideoCodec%26scopeName%3Dh264%26type%3DupperBound%26name%3Dvideo.level%26value%3D52)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.width%26value%3D3840%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.height%26value%3D2160%26replace%3Dtrue)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dmp3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Deac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Ddca)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dmpeg2video)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DMatch%26name%3Dvideo.profile%26list%3Dmain%7Cmain%2010)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dhevc)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DNotMatch%26name%3Dvideo.anamorphic%26value%3D999%26replace%3Dtrue)&X-Plex-Device=BRAVIA%204K%20GB&X-Plex-Platform=Android&X-Plex-Platform-Version=8.0.0&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...Hywp&X-Plex-Version=7.31.0.16802
04-20 22:05:46.693  i: [RefreshRateBehaviour] Checking refresh rate
04-20 22:05:46.697  i: [RefreshRateBehaviour] Target refresh rate: 23.976
04-20 22:05:46.697  i: [RefreshRateBehaviour] Refresh rates available: 60.000004
04-20 22:05:46.697  i: [RefreshRateBehaviour] Current refresh rate: 60.000004
04-20 22:05:46.697  i: [RefreshRateBehaviour] Best refresh rate: 60.000004 (1920x1080)
04-20 22:05:46.698  i: [RefreshRateBehaviour] No refresh rate switch required
04-20 22:05:46.700  i: [Exo2VideoPlayer] Seeking to 125277ms
04-20 22:05:46.706  i: [FF] Creating context for playback.
04-20 22:05:46.710  i: [FFmpeg] [INFO] Adding option: ignore_chapters 1
04-20 22:05:46.713  i: [FFmpeg] [INFO] Adding option: live_start_index 0
04-20 22:05:46.714  i: [FFmpeg] [INFO] Adding option: reconnect 1
04-20 22:05:46.714  i: [FF] Setting additional option: live_start_index: 0
04-20 22:05:46.714  i: [FF] ********************************************************
[FF] Statistics:
[FF] ********************************************************
State: Buffering Loading: No Auto Play: Yes
Surface: None
Position:  2:05 Duration:  0:00 
Window Start:  0:00 Window End:  0:00 Position in Period:  0:00
Period Position:  0:00 Period Duration:  0:00
Video:Unknown
Audio:Unknown
Memory Usage: 476.01953 / 1583.4805 Threshold: 192.1875.
[FF] ********************************************************
04-20 22:05:46.714  i: [FFmpeg] [INFO] Adding option: live_start_index 0
04-20 22:05:46.715  i: [FF] Opening https://192.168.0.81:32400/video/:/transcode/universal/start.m3u8?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&includeCodecs=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=209664&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F39873&protocol=hls&session=3830d3f30e978bba-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=3830d3f30e978bba-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Client-Profile-Extra=add-limitation(scope%3DvideoCodec%26scopeName%3Dh264%26type%3DupperBound%26name%3Dvideo.level%26value%3D52)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.width%26value%3D3840%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.height%26value%3D2160%26replace%3Dtrue)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dmp3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Deac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Ddca)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dmpeg2video)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DMatch%26name%3Dvideo.profile%26list%3Dmain%7Cmain%2010)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dhevc)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DNotMatch%26name%3Dvideo.anamorphic%26value%3D999%26replace%3Dtrue)&X-Plex-Device=BRAVIA%204K%20GB&X-Plex-Platform=Android&X-Plex-Platform-Version=8.0.0&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...Hywp&X-Plex-Version=7.31.0.16802.
04-20 22:05:46.715  i: [FFmpeg] [INFO] Allocating format context.
04-20 22:05:46.716  i: [FFmpeg] [INFO] Opening input from https://192.168.0.81:32400/video/:/transcode/universal/start.m3u8?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&includeCodecs=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=209664&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F39873&protocol=hls&session=3830d3f30e978bba-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=3830d3f30e978bba-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Client-Profile-Extra=add-limitation(scope%3DvideoCodec%26scopeName%3Dh264%26type%3DupperBound%26name%3Dvideo.level%26value%3D52)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.width%26value%3D3840%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.height%26value%3D2160%26replace%3Dtrue)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dmp3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Deac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Ddca)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dmpeg2video)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DMatch%26name%3Dvideo.profile%26list%3Dmain%7Cmain%2010)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dhevc)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DNotMatch%26name%3Dvideo.anamorphic%26value%3D999%26replace%3Dtrue)&X-Plex-Device=BRAVIA%204K%20GB&X-Plex-Platform=Android&X-Plex-Platform-Version=8.0.0&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...Hywp&X-Plex-Version=7.31.0.16802.
04-20 22:05:46.716  i: [FFmpeg] [INFO] [Cache] Close requested, terminating.
04-20 22:05:46.717  i: [FFmpeg] [INFO] [Cache] Opening source from https://192.168.0.81:32400/video/:/transcode/universal/start.m3u8?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&includeCodecs=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=209664&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F39873&protocol=hls&session=3830d3f30e978bba-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=3830d3f30e978bba-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Client-Profile-Extra=add-limitation(scope%3DvideoCodec%26scopeName%3Dh264%26type%3DupperBound%26name%3Dvideo.level%26value%3D52)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.width%26value%3D3840%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.height%26value%3D2160%26replace%3Dtrue)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dmp3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Deac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Ddca)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dmpeg2video)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DMatch%26name%3Dvideo.profile%26list%3Dmain%7Cmain%2010)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dhevc)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DNotMatch%26name%3Dvideo.anamorphic%26value%3D999%26replace%3Dtrue)&X-Plex-Device=BRAVIA%204K%20GB&X-Plex-Platform=Android&X-Plex-Platform-Version=8.0.0&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...Hywp&X-Plex-Version=7.31.0.16802.
its not hitting fancy plex name, but just plain ip.
i.e. name resolution is the issue.
thoughts?