Ultimately, I think whether or not native speakers accept our bids to speak German with us boils down to our pronunciation, fluency, confidence, and nonverbal cues. How to proceed--and put it into perspective--in the situations where they refuse, is a very delicate question. There have already been some really good answers here, from which I have benefited as well. I am a US citizen who has been living in Germany for 6 years. Regrettably, my German is only at the level it could have been in 6 months if I had been able to be immersed in the language of the land. So, I'm just throwing my perspective into the mix if it helps at all.
While its fairly obvious that busy service workers whose English is many times better than my German are not the right people to try to speak German with, other people may be, and I only wish I were better at discerning who, when, and how. Nevertheless, one thing I've learned in life is that, if I am not comfortable around other people, I cannot realistically expect them to be comfortable with me. And it extends to language: if I am not comfortable speaking a given language with someone, I cannot realistically expect them to be comfortable speaking it with me.
Generally, if they respond in English, I give them the benefit of the doubt that the intent is not malicious/xenophobic, and think "OK, they seem to get the vibe that carrying on this conversation in German will be difficult on me, and hence, them."
Will it be?
If I know the answer is yes, than I just capitulate and switch to English as well. If, however, I had not experienced any difficulty neither in understanding them nor in formulating what I want to say in German (I have possible undiagnosed ASD, and so sometimes my nonverbal communication is less than "fluent", which can in Germany be misinterpreted as that my difficulty is with the German language and that I need them to speak English), then in rather informal situations, I might say, "Wir könnten auch auf Deutsch unterhalten, aber nur wenn du nichts dagegen hast." It leaves the ball in their court.
A few times, I've simply continued speaking in German, but actually those times tended to be completely by accident. For example, I had an appointment at the KVR. I had been waiting outside, checking all my papers, and rehearsing what to say. I walked in, exchanged "Guten Tag", sat down, set my papers down on the desk, and the officer began speaking to me in English. I actually got out "Ich weiß nicht genau ob dies Alles ist, dass Sie brauchen, aber--" before my brain registered that the German-accented English I'd just heard was not actual German. Trying to be respectful, I said, "Or I can speak English." He then proceeded to continue in German and the appointment went smoothly.
Another time, a waiter addressed every member of my mixed German and international group in German, except me. I felt insulted and embarrassed, and felt it rude of him (maybe it wasn't though), so I just answered him in German. Maybe I was the impolite one there, but in any case, I do try to avoid doing that as much as possible--which is easier after some years of gradually coming to see the situation from the opposite perspective.
I only wish I'd been aware of all of this sooner.