I see a couple more things, but again nothing major.
- You’re not checking for errors on the call to IncrementAsync
- In the case of a document not being found, result.Success will be false. So you’ll never reach the logic around throwExceptionIfNotExisting. Instead of looking for null, look for result.Status of KeyNotFound.
How many of these operations are you trying to perform simultaneously (in parallel)?