c.on_click = lambda event: await self.btn_clicked(event)
Здесь создаётся лямбда-функция (не асинхронная), из которой вызывается асинхронная функция.
В этом и проблема.
Если у вас апи позволяет сюда (c.on_click) подавать асинхронную функцию, то сделайте её замыканием:
async for r in self.element.content.controls:
async for c in r.controls:
async def on_click(event):
return await self.btn_clicked(event)
c.on_click = on_click
Но это всё не нужно, можно просто подавать в вашем конрктеном случае напрямую нужную функцию:
async for r in self.element.content.controls:
async for c in r.controls:
c.on_click = self.btn_clicked
А если on_click требует только синхронную функцию, то так не прокатит.