FWIW what you implemented is 2/: every time a trigger is received during attack, the time counter restarts from zero and counts to T. This means that if you trigger it with period e.g. T/2, and if the state is initially at 0, it will grow to 0.5, then to 0.75, then to 0.875 etc. getting closer and closer to 1.
This is unlike the DUSG family of envelopes, where a trigger during attack will be “ignored”: it will restart the segment with a duration that’s proportional to the remaining distance; in other words, the Attack/Release time knobs don’t actually control times but 1/(the segment slope). This is what allows Maths to act like a (crude) clock divider, but more importantly that’s what is “natural” if you take acoustic instruments for reference.
With Stages, if you want a “plucky” attack (a few milliseconds), you set the Attack slider almost all the way down; but because of what’s above, the character of the “pluck” will depend on the state of the output when it was triggered: it will sound plucky when the state was at 0, but if you retrigger it during Decay it will sound more dull.