The string token expiration is useful if you need expiration duration over 2^52 seconds ;)
Also the fact that there is no defined limit is more a bug of the spec that of implementations. In reality there is always a limit (at most the ram of involved computers) so not defining a specific max size is asking for trouble.