BUG: SeriesGroupBy.nlargest/smallest inconsistent shape
- [x] Closes #15272
- [x] Closes #16345
- [x] Closes #29129
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry
very nice merge on green thanks @rhshadrach 