To wrap this up:

Npc CustomData does not need a default constructor, because all its members will be properly initialised by the implicitly generated default constructor. You can add a default constructor here (technically it is correct), though I would not have rejected the pull request because of it being missing.

Using -1 for an infinite duration is okay. Its a safe out-of-band value.

No further changes to the CustomData struct are required.

Then we need the punctuation fixes for the error messages and then we should be good to go.