lock
não é possível ser feito em contexto assíncrono. Você precisará usar semáforos para fazer isso. Synclock naturalmente tem um desempenho melhor que semáforos em um contexto síncrono, mas em contextos assíncronos você não tem essa opção.
Respondendo a "opa, a ideia era mostrar algumas formas de impl..." dentro da publicação 6 maneiras de usar paralelismo com tarefas e threads em C# .NET
1