The issue here is that you want a linear interpolation from value A to B.
Eg A = 0, B = 100. Every frame advances 10%
Width = 0 (pc.math.lerp(0, 100, 0);
Width = 10 (pc.math.lerp(0, 100, 0.1);
Width = 20 (pc.math.lerp(0, 100, 0.2);
Width = 30 (pc.math.lerp(0, 100, 0.3);
Width = 40 (pc.math.lerp(0, 100, 0.4);
Width = 50 (pc.math.lerp(0, 100, 0.5);
Width = 60 (pc.math.lerp(0, 100, 0.6);
Width = 70 (pc.math.lerp(0, 100, 0.7);
Width = 80 (pc.math.lerp(0, 100, 0.8);
Width = 90 (pc.math.lerp(0, 100, 0.9);
Width = 100 (pc.math.lerp(0, 100, 1);
However, in your original code, the value of A is always changing because it set it to be current width so it looks like this
this.lineElement.width = pc.math.lerp(this.lineElement.width, this._maxLineWidth, progress);
Width = 0 (pc.math.lerp(0, 100, 0);
Width = 10 (pc.math.lerp(0, 100, 0.1);
Width = 28 (pc.math.lerp(10, 100, 0.2);
Width = 42.4 (pc.math.lerp(28, 100, 0.3);
Width = 53.92 (pc.math.lerp(42.4, 100, 0.4);
Width = 63.136 (pc.math.lerp(53.92, 100, 0.5);
Width = 70.5088 (pc.math.lerp(0, 100, 0.6);
etc
TLDR, your A value wasn’t constant
You can have a variable as A, however, it should be your starting value that you are interpolating from, not one that is changing throughout the lerp if you want a linear interpolation.