А в чем вообще ключевые разница/преимущества? Если не считать среды исполнения .net/jvm?
Например, в котлине нет статиков. Можно объявлять функции вне класса. Нулябельность ненастраиваемая per-file. Делегаты те же. Котлин поддерживает мультиплатформу, позволяя явно задавать, какие модули общие для всех платформ, а какие платформоспецифичны. Ну и главная фича - интероп с платформенным кодом.