If the bug is as I understand, then wouldn't it have had a larger effect on research though? If higher S&I cancelled not only the bonus, but also reduced the ceiling on regular research progression of the nations that got behind it would have a rather snowball effect, where the advantaged side was getting a bonus, while the other side a penalty as well.
The honest answer here is I'm not even 100% sure what the bug was. Reason being was when I had come around to testing your particular example, some of the code had already changed on my end as I was reorganizing things to have a better understanding myself, as well to clean it up and clarify the steps as there are a lot of moving pieces when it comes to the final calculations.
Even still I had run a number of tests (based on a variety of combinations) and the current v1.16.02 EXE was matching the results in all of my development build tests which confirmed consistency as I was going forward with the code cleaning.
When I came to your one example, at first I couldn't even repeat it, and was only able to repeat it once I made the US fully mobilized. But then when I ran it against my development build, it was working fine. So what changed in between is as I mentioned above here not quite clear, but it is now working as expected on my end.
What I can say is that I don't think it is related to what you are thinking it was as S&I and all the catch up bonuses do not cancel out the regular advancement rate (as these are added in and all final values for these should be above 0 as I'm using NATURAL_8 to store the data for these), there might have just been an oddity where I fudged something in another way and I think the 3 in S&I and the 3 in the progression are just coincidental in the sense you would believe one cancels the other, i.e. 3-3=0 etc.
As mentioned all other tests were fine and all other combinations seemed to be fine as well.
Edit: I just tried running another example with the progression set to 4% instead and it did advance so maybe it was related. Either way it is corrected going forward now.