...
                  
                  
                      await f();
                  
                  
                  }   
                  
                  
                  И есть
                  
                  
                  
                  
                  
                          public static async Task ForceExecute(Message message)
                  
                  
                          {
                  
                  
                             await new X().Execute(message);
                  
                  
                          }
                  
                  
                  
                  
                  
                  Стоит ли во втором куске переделать на 
                  
                  
                          public static Task ForceExecute(Message message)
                  
                  
                          {
                  
                  
                              return new X().Execute(message);
                  
                  
                          }
                  
                  
                  
                  
                  
                  ?
                  
                  
                
1. во 2-ом случае не будет оверхеда, но это копейки как правило и пофиг 2. стектрейс будет немного разным, в 1-ом случае более полный 3. во 2-ом случае задиспозятся объекты, если были выделены и могут быть проблемы из-за этого (по ссылке раздел про Using) ну и вот чтиво по теме https://blog.stephencleary.com/2016/12/eliding-async-await.html
Можно переделать. Это будет небольшой оптимизацией по времени исполнения, но зато потеряется метод ForceExecute из стектрейса. Если нет какой-то перф проблемы, я этого делать не советую.
Обсуждают сегодня