docs/features/async-main.md
Task and Task<int> as valid entrypoint return types in addition to void and int.async to be placed on a main method that returns a Task or a Task<T> (but not void).$EntrypointMain that mimics the arguments of the user-defined main.
static async Task Main(...) -> static void $EntrypointMain(...)static async Task<int> Main(...) -> static int $EntrypointMain(...)return Main(args...).GetAwaiter().GetResult();