this is where things start to to awry
Actually, no. Here's where things go sideways:
h_lpf =
1.331e-05 z + 1.331e-05
-----------------------
z - 1
Sample time: 1.8824e-11 seconds
Discrete-time transfer function.
Or, rather, where you see what Matlab has printed out, and you take it for truth.
It's pretty obvious that the z - 1
in your denominator is really "z plusminus something that's been rounded to one".
I don't know the details of extracting a transfer function from Matlab (I don't use it for signal processing). But you need to figure out how to print out the numerator and denominator of that transfer function as arrays, and then you need to make sure you're printing them at full resolution. I think you'll find (as you figured out on your own) that it's really z - (1 - 2 * 1.331e-5).