About the different Kotlin versions:
• Kotlin/JVM is optimized for throughput. It's a bit slow to startup, and it eats some RAM, but it's crazy fast when it's going. Best for servers/software that runs for a long time.
• GraalVM Native is optimized to startup fast and have low latency. Best for command-line apps, stuff that needs to be started and stopped all the time.
• Kotlin Native is optimized for low memory usage. Best for IoT, phones...
I'm no where near an expert, it's just what I understand (so take with a grain of salt)