CLN: simplify maybe_promote in float and complex cases
Analogous to #28899 (orthogonal) for complex and float dtypes.  I'm pretty sure that after the current crop of maybe_promote PRs goes through we can do another round of consolidating code.