BUG: Catch TypeError in _is_dtype_type when converting abstract numpy types (#62018)
- Closes #62018
- Wrap np.dtype() call in try/except to handle abstract numpy types (e.g. np.floating, np.inexact).
- On TypeError, return condition(type(None)) to indicate mismatch rather than raising.

This prevents `is_signed_integer_dtype` and similar functions from raising on abstract NumPy classes and restores expected behaviour.
This is a small perf hit that will add up in a ton of places, all for something that we shouldn't expect to work anyway.