I wonder if in this case it would be appropriate to go ahead and synchronously autocomplete with the first match. This gets back to the thing I was saying before--if the provider can guarantee that typing further characters will always narrow the list (i.e., no new candidates would be generated by typing more characters), then it seems like we should only have to generate the list once at the beginning, and then handle future characters synchronously until we get to a point where nothing matches the list, at which point we should switch back to asynchronous querying (since the user might be typing something that would start a new hint context).