dtype validation from 24024
Fix tests in tests_datetimelike that are passing incorrect `freq`s

Implements some but not all of the dtype-validation tests in #24024; retains extant error messages instead of those raises in 24024.

Some stream-lining could be done if we change the behavior of `validate_tz_from_dtype`, which includes:

```
            try:
                dtype = DatetimeTZDtype.construct_from_string(dtype)
            except TypeError:
                # Things like `datetime64[ns]`, which is OK for the
                # constructors, but also nonsense, which should be validated
                # but not by us. We *do* allow non-existent tz errors to
                # go through
                pass
```

We could merge _validate_dt64_dtype into this really easily by changing these lines to just call `dtype = pandas_dtype(dtype)`, but that would raise on non-existent tz, which current policy allows.