В итоге забил и создал вторую функцию для обработки callback:
@admin_router.message(Command('proportions'))
@check_is_admin
async def proportions(
message: Message,
state: FSMContext,
keep_last_msg: bool = False
):
"""
Handles the 'proportions' command. Receive a str value from admin and
triggers the calculate_proportion function.
:param state:
:param keep_last_msg:
:param message:
:return: None
"""
if not keep_last_msg:
await message.delete()
await sleep(DEL_TIME)
await state.set_state(ProportionStates.waiting_for_proportion_input)
sent_message = await message.answer(
text='Введите через пробел: '
'\nПропорции компонентов '
'<b>A</b> и <b>B</b>, '
'и общую массу - <b>C</b>'
)
await record_message_id_to_db(sent_message)
@admin_router.callback_query(F.data == 'another_proportion')
async def callback_proportion(callback: CallbackQuery, state: FSMContext):
await callback.answer()
await proportions(callback.message, state=state, keep_last_msg=True)