Regression in artihmetic ops with alignment and special cases
I think 1.0.2 has a regression in arithmetic when we align but the result of `op(a, NA)` isn't NA. For example 1**np.nan should be 1.

Previous

```python
In [3]: pd.__version__
Out[3]: '1.0.1'

In [4]: pd.DataFrame({"A": [0, 1, 2]}) ** pd.DataFrame(index=[0, 1, 2])
Out[4]:
     A
0  NaN
1  1.0
2  NaN
```

1.0.2 / master

```python
In [1]: import pandas as pd

In [2]: pd.DataFrame({"A": [0, 1, 2]}) ** pd.DataFrame(index=[0, 1, 2])
Out[2]:
    A
0 NaN
1 NaN
2 NaN
```

Most likely from https://github.com/pandas-dev/pandas/pull/31679. cc @jbrockmendel if you have a chance to look (I won't today).

Are there any other special cases?