If you just add floats back to back to an empty block, the addition is essentially O(n^2) once the floats move below your current line position. This is because we repeatedly ask for the available width for the line from scratch every time we add a float, regardless of whether the float even vertically intersected our current line position.
Created attachment 86563 [details] Patch
Comment on attachment 86563 [details] Patch I assume all tests pass :-)
Fixed in r81746.