1. У Вас корректные примеры, никаких
await Task.FromResult не нужно.
2.
при вызове метода GetRequestResult придётся писать await
Придется.
async/await заразен, он вынуждено подымается вверх по вызовам. С
с .Result Вы убьете асинхронность, сомневаюсь, что в Ваше случае есть необходимость в его применении.
Бест практика одна - использовать его как будто это обычный метод, в этом и красота его применения.
await перед вызовом говорит только, что вызывающий поток освободится. Ну и нужно помнить о контексте синхронизации и понимать когда можно сделать
.ConfigureAwait(false).