I don't really remember what happened with your code vs chris's -- it was a pretty insane sprint Image may be NSFW.
Clik here to view. I do remember at some point the smoothing wasn't really working as expected and seemed to be event driven and not frame based. In the end, it wound up looking smooth and as expected.
At any rate, I have to say that I think having a clone() on a parameter could be pretty useful, same with an ofParameterGroup(..). This would be completely disconnected from events (ie, the clone wouldn't be connected to any of the events of its originator), etc, and just copying the value, min and max of a parameter, and any other necessary fields. For example, you could record the parameter group at specific points in time, ie, setting keyframes, and then later use those values, etc.
Also generally, I've found it useful if I want to do simple diffing, vs using events, to be able to record snapshots.