Looking at this again, it seems like the Kotlin compiler daemon takes care of cleaning itself up if the Gradle build is run without using the Gradle daemon. It's only when the Gradle build terminates abnormally that the Kotlin compiler daemon seems to stick around.