То есть, исходя из примера мне необходимо убрать async в модели-сервисе-контроллере и использовать связку async/await только там где мне необходимо подождать значение?
ну такое. Лишний микротаск не сделает твое приложение медленным. Мы наоборот юзаем return await везде как код-стайл. Промисы без await спереди мы юзаем в тех случаях, когда хотим явно показать, что мы их не ждем.
Не после? Если можно, буду благодарен за подробное объяснение, за счет чего аткой возврат увеличивает количество тиков до разрешения, чем передача самого результата(если я правильно понял)
когда в обьявлении функции написано async function то эта функция заворачивает все что из нее возвращается в промис, если оно не является промисом. async function test() { return 123 } завернет 123 в промис и вернет его