When told to shutdown the OS should stop all services, including Monit, shouldn't it?
-> It depends of how it was package for CentOS. And operating system supervisor will only handle processes it managed and know how to manage.
If CentOS package maintainer did crap integration for Monit in CentOS, it won't stop itself. Best is to perform a test on a clean system only with Monit and see the behavior.
On your CentOS version, how is Monit managed (start/stop) by the operating system ? Do it use system.d script ? service scripts ? init script ?
In the past, when requiring OS shutdown, after some time (timeout reach), the operating systems were issuing a soft kill then a hard kill signal. This is not the case anymore as all processes should be managed by operation system supervisor like upstart or system.d
Note that should is not a MUST. It people do crap, they have to clean up their crap.