Вопрос: зачем писать свой промежуточный слой, когда уже есть промежуточный слой под названием aiogram?
В том, что будучи aiogram самостоятельной библиотекой, которая бы реализовала свой некоторый API — вопросов нет. Делай, как хочешь, только задокументируй. И все счастливы.
Но когда ты реализуешь обёртку над имеющимся API, по сути, портированием его, будь любезен следовать документации к API.
Так можно докатиться до того, что user_id будем строкой возвращать. А хули — всё равно в «"99 случаех из ста" (с) Токсик» мы этот ID покажем юзеру в текстовом сообщении