BUG: Casting tz-aware DatetimeIndex to object-dtype ndarray/Index
Also fixes bug with `DateOffset == "infer"` incorrectly raising instead of returning `False`.

Also fixes bug(?) with `pd.Index(dtindex, dtype=object)` returning an index of datetimes instead of Timestamps, potentially losing nanoseconds.

- [x] closes #23491
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry
