The [delread~] should be a one-sample delay, so you're just comparing
the previous maximum with the current sample and outputting the larger
of the two. Then on the outside you can poll that with snapshot~
periodically just like you did your float object above.
If you need to reset it, I think you can just have the [delread~] feed
into a [*~] with a [line~] that jumps from 1 to 0 and back to 1. Use
[switch~ 1] instead of [block~ 1] if you want to be able to test the
cpu load from that patch. I hope this works.
I don't think that [env~] does what you want it to at all.