Sí, lo hay.
En primer lugar, no use FindAsync , usa Find en cambio. En el IFindFluent resultado use el SingleAsync método de extensión y espera la tarea devuelta dentro de un método asíncrono:
async Task MainAsync()
{
IMongoCollection<ApplicationUser> userCollection = ...;
var applicationUser = await userCollection.Find(_ => _.Id == inputId).SingleAsync();
}
El nuevo controlador usa async-await exclusivamente. No lo bloquees usando Task.Result .