I've been experimenting with making an exponential envelope using filters rather than lines. Instead of trying to re-process the linear data that [line~] objects make, I'm giving a hard 1 or 0 signal to a LP filter with very low cutoff to take create the curve.
Maybe this is an old trick, but it's new to me and I've been very pleased with the results. It gives nice, varied envelope curves, and it's satisfyingly simple and CPU friendly.