It's been a while since I touched the code. Or played tf2 :-(
The var [B]dmt_CVar_Nextmap is filled with the value of 'sm_nextmap' cvar when the config is loaded. I guess this happens when the dmt_timer is loaded at the start of a map. If the sm_nextmap changes because of a map vote, dmt_timer won't notice.
Try to alter the code to this, so the cvar is read at the time it is really needed
Code:
FindAndSetNextMap()
{
decl String:currentMap[64];
dmt_CVar_Nextmap = FindConVar("sm_nextmap"); /* added */
GetConVarString(dmt_CVar_Nextmap, dmt_nextmap, 64);
GetCurrentMap(currentMap, 64);
(disclaimer: it's been 4 years, I'm not quite awake and I need coffee)