BUG: Fix rolling().mean() returning NaNs on reassignment (#61841)
### Problem

Fixes issue #61841 — calling `.rolling().mean()` twice on a copied DataFrame was returning all NaNs on the second run.

This happened due to a slicing operation (`[::self.step]`) in `_apply_columnwise`, which broke result alignment when overwriting the same column.

### Solution

Removed the `[:: self.step]` slicing from the return statement. This restores full alignment and fixes the regression.

### Test Case

Tested locally with this code:

```python
df = pd.DataFrame({"Close": list(range(1, 31))})
df = df.copy()
df["SMA20"] = df["Close"].rolling(20).mean()
df["SMA20"] = df["Close"].rolling(20).mean()
print(df.tail())
<img width="1269" height="377" alt="Screenshot 2025-07-13 201135" src="https://github.com/user-attachments/assets/c1cbe325-28c6-4a39-bf98-861492d9295c" />

Thanks for the PR, but please contain the changes to one open pull request at a time