Some features can very well be implemented ontop of a language.
The Kotlin designers are exceptionally good at finding the minimum required language support to enable higher level libraries to enable modern software development.
Coroutines is a perfect example here. The kotlin compiler comes with one feature for coroutines: suspend functions. Ontop of that there is very slim support in stdlib. Every thing else (async, launch, produce, …) comes as an extra package. Not part of the language while other languages like C#, JavaScript, … have e.g. async as a language feature, adding extra complexity to the core language.