REF: Block._astype defer to astype_nansafe in more cases
Makes astype_nansafe for (td64|dt64) -> (object|str|string) match DTA/TDA/Series behavior.

Medium-term (weeks) the goal is to get rid of Block._astype altogether and just use astype_nansafe, which among other things will be helpful for ArrayManager.

This changes `Series[dt64].astype("string")` behavior in a way that causes a new xfail in test_astype_roundtrip, but as discussed in #36153 that test is already wrong for other reasons.

This also has a side-effect of changing Series(dt64, dtype="Sparse[object]") behavior, discussed in #38508 as possibly not-desirable.