1.Task.Run нужен для запуска синхронных методов в тредпуле.
2. Thread.Sleep использовать не рекомендуется, тк есть Task.Delay
Второй пример действительно похож на опечатку.
Оба примера плохие: Например если в первом методе убрать await Task.Run, то Thread.Sleep займёт вызывающий поток
Читайте
TAP.docx