В первой строке «Task.Run», которую вы запускаете, сразу же возвращается результат «GetResultAsync». Этот результат, тем не менее, является Задачей, которую можно ожидать (от вашего 'await').
Итак, вы на самом деле «ждете» метод GetResultAsync.
Во второй строке вы запускаете задачу, которая не возвращается сразу, а ждет, пока не завершится GetResultAsync (вызывается асинхронно). Повторный тип вашей Задачи - ResultType.
Таким образом, вы «ожидаете» свою собственную задачу, которая, в свою очередь, вернется только после ожидания метода «GetResultAsync».
В конце концов, они оба достигают одного и того же результата, но немного по-разному.