Does it need to be a scheduled task and one particular provider turned off for an hour at a time?, i made a suggestion here Circular checking and switching of APIs to keep flow of translations where perhaps we could always start at the top of our providers list and make test call (like the one you provided to test Google response and Microsoft response) if test call response is 200 or text is translated then use that provider, if the response is not 200 or test text is not translated (using the same text for each test and the REGEX to check the translated text) then move to next provider, every translation call can then start at the top of the list and work down
Not having an empty result would be good because once we have an empty return thats how it remains, i've already had many people complaining that this is the case in my forum.