The phrase "async all the way down" is a bit misleading, because it usually refers to the fact that once you use an async method, you need to have async methods all the way up (or back, depending on your mental image) - from your async method to its caller, and then your caller's caller, and so forth, all the way back.
Your example shows a WebApi/MVC controller that exposes an async task. The next step in the async chain is the WebApi/MVC infrastructure that receives the HTTP GET request, maps it to a controller, and dispatches the call to the controller's method. This infrastructure is async aware, meaning it knows to call async controller methods properly and await their result to return the HTTP response.
As to how exactly that infrastructure is implemented, I don't specifically know, nor care - I know that ASP.NET web services support async Task controllers, and that's good enough for me.