text: Title: BUG: set_index with pyarrow timestamp type does not produce DatetimeIndex
  Body: ### Pandas version checks
  
  - [X] I have checked that this issue has not already been reported.
  
  - [X] I have confirmed this bug exists on the [latest version](https://pandas.pydata.org/docs/whatsnew/index.html) of pandas.
  
  - [X] I have confirmed this bug exists on the [main branch](https://pandas.pydata.org/docs/dev/getting_started/install.html#installing-the-development-version-of-pandas) of pandas.
  
  
  ### Reproducible Example
  
  ```python
  import io
  
  import pandas as pd
  
  buf = io.StringIO("date,value\n2024-01-01 00:00:00,1\n2024-02-01 00:00:00,2")
  df = pd.read_csv(buf, parse_dates=["date"])
  df.set_index("date").loc["2024-01"] # works
  
  
  buf = io.StringIO("date,value\n2024-01-01 00:00:00,1\n2024-02-01 00:00:00,2")
  df = pd.read_csv(buf, parse_dates=["date"], dtype_backend="pyarrow", engine="pyarrow")
  df.set_index("date").loc["2024-01"]  # KeyError
  ```
  ```
  
  
  ### Issue Description
  
  The pyarrow timestamp type gets put into a generic `Index` when assigned via set_index, so the datetime overloads do not work correctly
  
  ### Expected Behavior
  
  The pyarrow timestamp type should be wrapped by a DatetimeIndex
  
  ### Installed Versions
  
  3.0.0.dev0+1696.gfae3e8034f'