Twice faced the issue, that host was failed to recover from maintenance mode(with data gathering and without data gathering).
The first time such problem appeared is with Zabbix version 3.2 and recently with 2.4.
There are no any known steps how to reproduce the issue so far.
But when you run into that issue - the way how to identify is:
Creating an item zabbix[host,,maintenance] and check for the received value.
In my previous case, the result of the check was 1(1 - host in maintenance with data collection) however in the database the column had the value maintenance_status=0.
The only known way how to fix this glitch - restart the Zabbix Server daemon.