Async/await is an inferior product compared to threads, for so many reasons (function coloring and meaningful stack traces come to my mind).
Keeping the same interface as native thread, plus structured concurrency, are best of breed.
Many uncancellable threads + mutability + goroutine panic kill it all are serious issues for golang.
Many uncancellable threads + mutability + goroutine panic kill it all are serious issues for golang.