I am making a location request using FusedLocationProviderClient. I have kept a timer for 30 seconds to check if location is received within that timeframe.
You need to request only the following permission:
Manifest.permission.ACCESS_FINE_LOCATION
I had the same issue and I was requesting both permissions with:
Manifest.permission.ACCESS_COARSE_LOCATION
When I removed COARSE LOCATION I got the update almost immediately.