Other Parts Discussed in Thread: BQSTUDIO,
To put things in context, this is also a follow-up of a thread I recently created:
As mentioned in the thread above, the factory parameters are built into my firmware and they will be written to DF during the in-factory configuration process. I monitored the I2C bus with an analyzer while performing the parameters programming. It turns out at some point a bus error occurs. For example:

Notice the time the transaction takes (343). Different runs make the error to occurr at different points of the writing data stream. I also notice there were some transactions that were lengthened, for example #135 above where it took 18ms to send the bytes. The driver is polled, no RTOS and only one ISR that increments a counter every ms so extremely short. I am assuming the longer transaction is caused by stretching by the fuel gauge.
I made a capture of the I2C bus while BqStudio was writing the defaults back to the fuel gauge DF. I obtained this (partial):

Needless to say no error occurred.
What stood out when I was analyzing the capture above was the time interval between transactions. For example, between transaction 1 (write MAC and MAC_DATA) and 2 (write checksum and length), there is an interval of ~15ms. Between 2 and 3 (BqStudio sends the address to read back data it just wrote), ~141ms. Between 3 and 4 (read MAC/MAC_DATA/checksum/length), ~15ms.
I repeated the analysis with the following transactions and I noticed a pattern: between two transactions (with one exception), there is an interval of around 15ms. The exception is when a write operation is triggered by writing the checksum/length registers, there is an interval of ~140ms before a new transaction starts.
The probable cause of the errors with my firmware is timing related, the time interval between transactions if of the order of a few milliseconds and after a write, I add an interval but it is only of a couple of tens of milliseconds. On a previous inquiry about this matter, it was suggested I read back the control_status register but in my tests it did not work, and as you can see, BqStudio does not do it.
I could not find information about the time interval between I2C transactions of BQ34110. The only information on Data Sheet, TRM and application notes is about the protocol; I was not able to find information about timing. So, my first BIG question is if there is such an information somewhere that I may have missed. If not, what are the recommended timing? I may try to change my firmware to mimic BqStudio timings, but I would rather use a document source instead of an ad-hoc one.