I don't think that it's the wrap around issue as looking with a scope, 40ms seems to be fine (looks like wrap around is around 43ms when running at a 96MHz clock), and the other samples that work and do use 40ms work. The one that doesn't actually only goes up to 20ms.
Also, it does fire...