I've seen this problem for about three times in the user mailing thread (previously I suspect that the users are specifying the wrong execution.target) until I myself also bumped into this problem. I've submitted a yarn-per-job batch insert SQL with Flink SQL client and after the job finishes Yarn application is not terminated.
This is because yarn job cluster is using MiniDispatcher and it will directly terminate only in detached execution mode. This execution mode is (through some function calls) related to DeploymentOptions#ATTACHED which is true by default if jobs are submitted from SQL client.
When submitting an insert job, SQL client will not wait for the job to finish. Instead it only reports the job id. So I think it is reasonable to set detached mode for every insert job.