BUG/PERF: DataFrame.to_records inconsistent dtypes for MultiIndex
- [x] closes #47263
- [x] [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
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [x] Added an entry in the latest `doc/source/whatsnew/v1.5.0.rst` file if fixing a bug or adding a new feature.

Fixes a bug/inconsistency in DataFrame.to_records that produced different numpy dtypes for Index vs MultiIndex. 

**NOTE**: one existing test was updated to reflect the change: `test_to_records_index_name`

The fix is also beneficial in terms of performance:

```
import pandas as pd
import numpy as np

n = 5_000_000

mi = pd.MultiIndex.from_arrays(
    [
        np.arange(n),
        pd.date_range('1970-01-01', periods=n, freq='ms'),
    ]
)

df = pd.DataFrame(np.random.randn(n), index=mi)

%timeit df.to_records(index=True)
```

```
# 6.78 s ± 264 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)      <- main
# 90.9 ms ± 3.03 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)  <- PR
```

Double awesome! Thanks @lukemanley 