Recently read articles about it:
https://devblogs.microsoft.com/dotnet/understanding-the-whys-whats-and-whens-of-valuetask/
https://blog.marcgravell.com/2019/08/prefer-valuetask-to-task-always-and.html
Both of the articles says that

Do not await ValueTask multiple times.
Do not await ValueTask concurrently.
Let’s say I have a Web API that has a singleton service, and its method:
And have a controller that exposes an endpoint …Requests come…
So the question is, is it safe? I mean on the requests side it only awaits once, but on the service side because it’s a singleton it awaits multiple times and concurrently.
Thanks.
Each call to GetWeathersAsync creates a new ValueTask
So this is safe:
This is not safe:
Hello, Alikont: code blocks using backticks (“`) don’t work on all versions of Reddit!
Some users see this / this instead.
To fix this, indent every line with 4 spaces instead. It’s a bit annoying, but then your code blocks are properly formatted for everyone.
An easy way to do this is to use the code-block button in the editor. If it’s not working, try switching to the fancy-pants editor and back again.
Comment with formatting fixed for old.reddit.com users
FAQ
You can opt out by replying with backtickopt6 to this comment.
C# devs
null reference exceptions

source