REGR: Fix to_numpy for masked array with non-numeric dtype
- [ ] closes #56991 (Replace xxxx with the GitHub issue number)
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

sorry to ask this here, but its somewhat related. Should the following return `pd.NA` or `np.nan` for the na_value? It is returning `pd.NA` but that isn't allowed in a float64 array:

```
In [1]: import pandas as pd

In [2]: from pandas.core.arrays._utils import to_numpy_dtype_inference

In [3]: from pandas._libs import lib

In [4]: arr = pd.array([1, pd.NA], dtype="int64[pyarrow]")

In [5]: to_numpy_dtype_inference(arr, dtype="float64", na_value=lib.no_default, hasna=True)
Out[5]: (dtype('float64'), <NA>)
``` > Should the following return pd.NA or np.nan for the na_value? It is returning pd.NA but that isn't allowed in a float64 array:

Personally I would expected `np.nan` here #57233 @mroeschke good to merge? Thanks @phofl 