my understanding (from what you say) is that you're not accessing location from the background (because all your location requests take place on the main thread).
from the link i provided, google seems to be saying that if you have any foreground service and if you are requesting location (even if from the main thread), the user has to grant ACCESS_BACKGROUND_LOCATION to your app. my understanding of that would be you have to keep that permission in your manifest (as well as request the permission when the app runs. do you have any foreground service which might be started from the background? if yes, then you have to have the permission. if you have no foreground services, then - regrettably - the answer is elsewhere.
if google won't accept your explanation, either you didn't explain it well enough or you are doing something google doesn't want you to do (and that we do not understand what that might be). you might be able to do things differently, but if location sharing is involved, you're going to have a hard time convincing google.
i don't know what your app does, but you do mention determining how far away another ham operator is. i would guess frequency is not enough. i would think the only way you could know where a fellow ham operator is is if he tells you (or sends the co-ordinates to a server). that would be an example of location sharing.