Async support in defer blocks?

It's a known limitation, e.g. prior lamentations.

You can wrap your await enableIdleTimer() in Task { … }, as a workaround. Or at least, you can if you don't care if enableIdleTimer concludes before runOperation.