

Ostensibly, that’s because the app wants Bluetooth and/or WiFi access so it can connect to the printer. Because you can use WiFi and Bluetooth to determine location (based on large crowd sourced databases of these data points that have been geolocated), the OS has to ask for location permission as well, even if you just need to see WiFi and Bluetooth.
That being said, once they have this permission, I have 0 doubt they log the actual location as well…
Mozilla used to run a free service for this, and collected that data in the background using mobile Firefox. A replacement is https://beacondb.net/, which is still building enough location data to become useful. Services like this aren’t nefarious, they’re actually really important in getting a quick GPS lock on mobile. Phone hardware actually have pretty poor GPS receivers, but if you can determine an approximate location prior, you get much better results, especially once supplemented with inertial measurements and snapping to mapped roads.
Yes
Yes, twice (download from home to the server, and upload from the server to the client)
I do the same thing - I have a 3TB limit, but usually only use 300GB, sharing Jellyfin to a dozen or so users.
Edit: I’m sure there are plenty of good VPS providers out there, I personally have been using NerdRack for a few years now (got a VPS on special and the rate is locked as long as I keep it). Looks like they’ll do $11/year right now for a KVM VPS that’s sufficient.