I redesigned both mods based on your tips and implemented a trial solution for using youth potion. Now the mod does not look at the total possession time of slave but additional timer for current age.
The first mod looks good. The standard deviation part still does nothing because the races will always be within 3 SD of the median, but it won't do any harm either.
The second mod still has a couple issues.
Not sure if this is intentional or not, but your custom person age variable only updates once a person has exceeded the grow up time for their age, and it doesn't track days that they are away for any reason (i.e. passing out drunk prevents maturing).
While the current functionality of updating lastAge works fine for most cases, if the player uses a potion to revert a person's age during the day after they mature, then they will be able to mature again at the end of the day (depending on RNG). Since the new age from maturing is only registered during the end of the next day, reverting the age before then will retain the daysInAge. Given few people will use this mod and want their slaves to stay young, this is unlikely to be an issue, but I wanted to point that out just in case.
On line 97 you compare height with the end of the hair length array, allowing an index out of bounds.
if rand_range(1,10) > 5 && _person.height != globals.hairlengtharray.back():
In the penis growing section, you setup to use the chance variable again, but never use it in the comparison on line 121.
if rand_range(1,10) > 3 && _person.penis != globals.penissizearray.back():
Due to the fact that the balls growing section is after the penis section, someone that has just grown balls when becoming a futa will be able to have those balls grow larger, which is not a huge issue but the previous text about the size will be wrong.
Just a nitpick, but the check for being an adult on line 80 should be near the start of the function as an early return condition, since there isn't any point to calculating anything for an adult.
if (toMatture == 1) && (_person.age != 'adult'):
For SD it only arbitrary put to 3 without testing, if 2 or something between is better i can easily change. This applies to all constants. Especially for endMutiplayerPerGenealogy , mutationPerGenealogy , atavismChance , minGenMutation , sexParentBias
For maturing:
Moved _person.agging update to beginning and added setting it again after maturing.
Moved ball growing section before penis.
changed not edited check's.