Walter,
I applaud your efforts. Mastering these sensors the first time is never easy, but you are on the right path and getting close.
I took a look at the raw data you posted for the last two flights. I haven't gone through them thoroughly, but enough to have some early observations and some questions...
Observations:
1) You are sampling at about 39 Hz most of the time -- that is "good enough" for now, but something in your code at launch is slowing way down to 6hz (.15 ms) at the most critical time off the pad. You might be losing critical accelerometer data at that time creating a gap.
2) Your ejection pyro in both flights is firing early -- well before actual apogee, based on the accelerometer data. That early deployment can definitely cause discrepancies in total altitude data. You might want to experiment with a motor delay that fires after apogee.
Questions:
3) In the Accelerometer X data, what is the scale you are using? The LSM6DS3 is only a 16g accelerometer. On a very small rocket, I'd assume you are exceeding 16 gees, but I don't see it in the data, so maybe not. Do you have the LSM configured for full scale (16g's)?
4) Your T+ counter (column 7?) is starting a bit late, as compared to the startup clock and accelerometer data. Are you using that for your integration rate interval or using the startup clock? Combined with #1 above this could cause a gap.
5) Why do you think your barometer altitude is incorrect (maybe I missed the post)? You got 117m on one and 108m on 2. What do you think they should be?
Suggestions:
Mastering the accelerometer integration and logging and then moving into more complicated integration with the gyro, etc. requires a LOT of iteration and testing. When I was learning, it was very slow to make changes, go to the desert and launch, and then evaluate the changes. A much faster way to iterate is to buy a Nerf football. Cut out the inside, put your board in there, and go outside and "launch" your board 20 times. Apogee at 25 feet with fast sampling is just as accurate as apogee at 300 feet or 3000 feet. This can save you a lot of time iterating, so the time in the desert is more valuable.
Also, stay away from DMPs. All of the commercial DMPs are programmed considering a horizontal vehicle (drone, car, RC airplane, etc.). Almost all of them integrate the accelerometer for Earth reference and that will give you wrong data, once the rocket leaves the pad. Keep doing what you are doing to master the accelerometer and then the gyro. You are close.
Ultimately, you likely will need an accelerometer with a higher range than 16 gees.
-Mike