rewrite FindProvidersAsync

This PR implements a better `FindProvidersAsync` call that uses the query framework and actually takes advantage of closer peers.
afaict, this is an optimization in case we have enough locally, right? maybe comment it so?