I tested a simplified version of option (2) from @Paul Fraser's fix, which also worked. The following code needs to be executed before exiting the function that uses Application.ScreenUpdating:
ActiveWindow.FreezePanes = True
ActiveWindow.FreezePanes = False
Alternatively, this also worked but the screen flashes for a second:
ActiveWindow.WindowState = xlMinimized
ActiveWindow.WindowState = xlMaximized
It seems that forcing Excel to perform minor UI interactions "fixes" the issue.