I2C depends strongly on timing. So normaly, during a I2C communication every interrupt should be disabled / suppressed (including Serial Communication)
Also, some display (types) have specific timings for accessing the different lines and pages (means timing between different writing activities). Normally this is specified in the data sheet of the controller.
Please keep in mind: the Spark-delay function is not a true delay, cause they can also end up in a cloud communication or housekeeping activities (if the delay value is high enough).