async isn’t really part of your method signature

The async ‘modifier’ is just there to let the compiler know how to interpret your method contents.  It’s not a ‘real’ modifier like public, private, abstract, override, new, etc.

Over the weekend, saw a thread on StackOverflow where the person asking the question seemed to think that having a method use async/await affected the class hierarchy such that all subclasses had to use it too.  That’s not the case at all – the actual compiled results is a transformed version, of course, but more importantly, it’s still a ‘regular’ task.