Racket has full-blown green threads (virtual threads)[1] that serve as an alternative to the async/await paradigm. It also supports use of native (OS) threads[2].
[1] https://docs.racket-lang.org/reference/eval-model.html#%28pa...
[2] https://docs.racket-lang.org/reference/places.html
[&] https://docs.racket-lang.org/reference/futures.html