PERF: _form_blocks
```
from asv_bench.benchmarks.frame_ctor import *

self = FromArrays()

self.setup()

%timeit self.time_frame_from_arrays_int()
2.28 ms ± 67 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)  # <- master
1.82 ms ± 5.34 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)  # <- PR
```

Orthogonal to #43142, one more optimization after these two are in.
https://github.com/pandas-dev/pandas/pull/43144/checks?check_run_id=3386832245 looks like a real error Huh can't reproduce the failures locally, will have to dig into this OK, looks like in numpy<1.21 comparing np.dtype object to EA dtype object raises instead of returning False, so the itertools.groupby is failing.  will figure out a workaround updated with np<1.21-compatiblity + green @jreback gentle ping; hoping to get this in before you take off