Apparently the problem was the "async". Once I changed the var location = await Geolocation.GetLocationAsync(new GeolocationRequest(GeolocationAccuracy.Best));
Into this
var location = await Task.Run(async () => await Geolocation.GetLocationAsync(new GeolocationRequest(GeolocationAccuracy.Best)));
And changed
SendLocationToServer()
to no longer be async, the code ran smothly. I don't know why the code didn't like running async, but isolating that async part into a singular Task, solved the crash.