this really is somewhat of a US issue. Travel the world and you'll find that other countries sorta have the "we speak our language, if you dont, oh well" attitude. Go to Europe and see how you fare if you only speak english. In the main cities and larger towns you should be fine, particularly if you are interacting with folks that are say 50 and younger. Once you get out into the small towns and villages and see how you do. They might understand you but generally will make little if any attempt to have a conversation with you in english, especially if they are over 50ish. Even the police and govt folks will speak to you in their native tongue.
The issue with the US is that there is no official language. Yes we have always spoken english as the primary language from day one and it has evolved from the queen's english into American english with various sub dialects along the way. However every single time and there have been MANY attempts to get it passed, the Congress fails to vote english as the official language of the USA. Until that time folks will do as they please and you really have no recourse to force anyone to speak english, except to stop working/dealing with them.
I agree its rude to have separate conversations in a different language in the middle of a conversation in english (as you described) but what can you do? Happens to me all the time working in IT. Its not usually spanish though, its typically an Indian dialect or one of the Asian languages. After a few minutes of it, especially when they do it face to face I simply interject rather loudly "I need subtitles"
Usually gets the point across.