BUG: fixes Arrow Dataframes/Series producing a Numpy object result
- [x] closes #53979 
- [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 [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

## Notes: 
`.dot()` 's returned object dtype is now the result of  `dtypes.cast.find_common_type()`.

It's worth noting the new object's dtype's is of a higher precision but this seems line up what's expected: https://arrow.apache.org/docs/python/pandas.html#pandas-arrow-conversion


Hey @phofl do you know who I should tag for a review on this?   > Could you add a test for masked types as well? I suspect they failed before as well

Sure! I made an assumption about what you meant by the masked types `Int8, Int16, Int32...`. 

After I updated the tests I noticed another potential edge case that when calling `dot` with two different masked dtypes, for example `Float64` and `float[pyarrow]`. I get return type Object

How would we want to handle this case?  > After I updated the tests I noticed another potential edge case that when calling dot with two different masked dtypes, for example Float64 and float[pyarrow]. I get return type Object

Let's ignore this case for now Thanks @mcgeestocks 