Check mysqladmin processlist
. It's possible some nasty query really is still running. Mysqld shouldn't start any new queries when it is reporting shutdown in progress.
If it really is idle, then try mysqladmin shutdown
. This is probably the command used in your unit file but worth running again. Give it a few minutes. If still running, try killall -TERM mysqld
- again wait a few minutes.
If the service is still running, then you'll need to crash mysqld to get it to stop: killall -KILL mysqld
. Expect the startup to take longer with a chance of data corruption.