What could cause 45FPS limit for SSD1306?
The SSD1306 display driver does not have a direct connection to every pixel on the screen. Instead it connects to each row and column of the display matrix and scans across each column sequentially to generate the displayed image. Persistence effects allow your eye to perceive this as a static image.

You can update the graphics ram at any rate you want, but data will only be sent to the pixels on the display when the scan line reaches the ram location. The data used will be whatever is in the memory at that exact point in time.

On your screen it sounds like the SSD1306 is scanning at 45Hz. There are a set of registers you can program to change the display clock (and hence overall refresh rate) but be aware that increasing this will increase power consumption and the panel itself may malfunction if the rate is set too high. The relevant information is on page 22 of the datasheet.