This seems obscure, but actually is a huge deal.
Drone point clouds are common now, and I am still not seeing people do well with making TINs from them.
Every engine seems to want to decimate the pt cloud first, to lighten the load, then make the tin.
You lose the "important" points when decimating, which is the opposite of what we want.
Instead, use all the points, and simply the surface down to desired triangle count using the quadratic decimation method. The code is out there, its not something to be rewritten.
What you do is read in the pt cloud, sort pts to divide into smaller chunks, make a surface of each chunk and simplify, then add the chunks together in the end. At least that is how I did it in my c# prog to multithread and not lock things up. It works, I use it daily. Wish adesk would up its game on this.
Note that the resulting surface would cut all ties to past parameters. Like importing from an xml with just triangles. When starting with a .laz though, there is no history so that is a non-issue. Getting data lightweight is a huge issue and this method does that and maximizes detail from original data.