FusedLocationProvider does not necessarily use the hardware GPS.
You set a location permission in your manifest and configure a LocationRequest's Priority - android uses these settings to decide how to get a location.
ACCESS_COARSE_LOCATION permission and PRIORITY_NO_POWER are i think the lowest accuracy settings available.
BUT you need to understand that the FusedLocationProvider fuses requests for locations from all applications on the device that use the FusedLocationProvider.
If application #1 requests maximum accuracy location from the FusedLocationProvider and then application #2 requests low accuracy location then the FusedLocationProvider can use the location that it has already got for application #1 and pass that location to application #2 - the location passed to application #2 will have some of it's accuracy removed but it will still be a 'recycled' location originally obtained for application #1.
Think of it as 'location caching' between applications that use the FusedLocationProvider.
Now that means that the location accuracy your application gets today could be different from the location accuracy it gets tomorrow.
If today a different app has already requested location from the FusedLocationProvider then the 'location cache' is fresh and available to your application.
If tomorrow no other app has already made any location requests to the FusedLocationProvider then the 'location cache' will be empty.
Activating the wifi without connecting to any network seems to increase the accuracy to 31m which would be great. Why, I have no idea.
I think that even though you are not connected to a wifi network, android can still obtain network based locations.
Being connected to a wifi network is not a requirement for network location to work - android just needs the MAC address of any nearby wifi signals and it can then look up those MAC addresses in it's database and get an approximate location.
(Again that's what i am assuming and cannot say it is fact).