What I meant here was, make a new function called, say, SetLifetime, which cancels any existing ptExpire and sets up a new one.  In the ShadowRift spell, call SetLifetime right after creating the portal.

Long story, but programmers have learned through much painful experience not to do "real work" in constructors for various reasons (such as the fact that constructors can't return errors).  Putting this in a separate function will make the class easier to use in the future, even if it doesn't seem like it now.