on OSX mysqld does not exit cleanly.
connection threads wait in poll() and the main shutdown thread waits for them to exit.
See rpl.rpl_binlog_index — where mysqltest fails to shut the server down cleanly and has to kill -9 it. This causes MyISAM warnings on restart about a table not being closed properly. Also, man can see that in a debugger, that connection threads wait, and finally the server receives SIGKILL.
With --thread-handling=pool-of-threads everything works ok.