Awaiting a storage operation (ie. look up user) in C# will allow other calls to proceed until the I/O is available to read.
Synchronous code locks you into the model of handling one request per thread.
Given the minor overhead (both cognitive and runtime) of a sync/await, I can’t see why you wouldn’t want to do it here.