It's something related to time zones and UTC conversion. First of all you should remove the ToUniversalTime call. That is wrong in the demo, indeed. Please use:
Jwt.Claims.Expiration := IncHour(Now, 10);
Then you can play with the "10" value to see what works (1, 10, 24)?
Also, what is your time zone?
Finally after all the above is done, please provide the HAR file I mentioned above, that will help to inspect what exactly is going on. Thank you.