PERF: faster access to the dtype for masked numeric arrays
```python
>>> import pandas as pd
>>> arr = pd.array(np.arange(100_000), dtype="Int32")
>>> %%timeit
... arr.dtype
... del arr._cache["dtype"]
2.09 µs ± 14.2 ns per loop  # main
234 ns ± 0.237 ns per loop  # this PR
```
 
Discovered working on some performance issues with #52836.
nice! thx @topper-123 