BUG: Fix inserting of wrong-dtyped NaT, closes #27297
- [x] closes #27297
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Needs tests for PeriodDType case.  The tests are probably not in the ideal place, how to move/parametrize them depends on what axis we want to sort them along (i.e. all Series indexing tests together or all timedelta-insertion tests together)
> this patch is very awkward. This needs work to make it more fluid.

Might be because it addresses three separate-but-related bugs.  Looking at it commit-by-commit might make more sense.  I'm happy to make separate PRs if that's easier Rebased following #27323.  This does for datetime64 Series what that did for timedelta64 Series no whatsnew, so doesnt need to be moved > Why for example would the ObjectBlock construct not simply reshape (if needed); it already knows the dim & the values shape?

Because the Block constructor calls self._validate_ndim to check that it got the expected shape.  reshaping is done earlier. > > Why for example would the ObjectBlock construct not simply reshape (if needed); it already knows the dim & the values shape?
> 
> Because the Block constructor calls self._validate_ndim to check that it got the expected shape. reshaping is done earlier.

is this not exactly what ``_block_shape`` does?  > is this not exactly what _block_shape does?

It is, but block_shape gets called before the constructor.

But apparently it isnt necessary.  Just ran the tests with this reshape disabled and its fine now.  Will remove. removed+green whatsnew added + green thanks @jbrockmendel  It looks like this is causing a bunch of CI failures.  cc @jreback @TomAugspurger 