In my case I went with an old thinkpad X220, the battery is heavily degraded and It can't do less than 13W while streaming even with hardware video decoding due to the old inefficient chips in it, but even then I get between 3 to 4 hours of remote usage out of it. I can connect it to my computer using whatever available wi-fi or 4g/5g tethering, tailscale takes care of encryption and making a direct connection (no hops, thats important for latency). I've swapped the wlan card (multiple generations behind) with a modern intel wlan with wi-fi 6 which helps getting good network performance.
Sunshine can achieve a fluid performance (60fps, low latency, low res) as long as it can get between 200KiB/s (idling) and 300KiB/s of bandwidth. Tuning sunshine was a bit of a pain since it was really made for local ethernet streaming at 10MiB/s+. The first thing is to sacrifice encoding latency by swapping the "inefficient" hardware encoder with a software encoder set to one of the "slow" presets. This will lower your bandwidth req. right away and the latency increase is negligible when taking into account typical wan network latency. Host CPU load is minor at low resolutions and 60fps. H264 is all that X220 can decode, so H264 it is, but newer machines should afford you fancier video encoders. For some reason you can't control the Opus encoder bitrate and in my tests it was encoding at 64KiB/s (512kbps !), so usually I disable sound. There seems to be a 128kbps mode in the code but it might be busted for now. Disabling FEC also helps. Just remember that sticking to low resolutions makes everything quadratically more efficient :). Chroma subsampling is the enemy of colorful text, so you will want to enable 4:4:4 mode in moonlight if your hardware decoder supports it! (and of course the X220 hardware dec. can't do that, so no sharp syntax highlight for me when on battery!, though because of my astigmatism I like using bold text which is less susceptible to that....)
Anyway, sorry for my info dump, just wanted to share.