API: ensure IntervalIndex.left/right are 64bit if numeric, part II
- [ ] closes #xxxx (Replace xxxx with the GitHub issue number)
- [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.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

Follow-up to #50130. It turned out that `IntervalArray.from_array` could get around the 64bit requirement, so we fix that by moving `maybe_convert_numeric_to_64bit` and  and using it in the `IntervalArray` constructor also. 

Also return the 64bit index in `IntervalIndex._maybe_convert_i8`, previously we returned `original`, which was the  not-64bit-converted one...(this changes a test, but it’s just for an internal method).
Sorry for the late response, I had some things I had to attend to in the weekend.

I respond to you comments individually above. I did look into this again and agree that some of the suggestions in my original PR could be improved upon (especially the changes to `ÌntervalArray`) and I've uploaded a new version (with rebase). The failed check is unrelated.  Rebased to make the CI run again. No other changes have been made. Ping.

As far as I see all comments have been addressed? 👍 I've remove that code section. Ping. I've rebased because this has been standing still for a bit. thx @topper-123 