Tangentially related, sometimes I find Stacked Git helpful when figuring out complex features or refactoring. Until it's nearly finished I'm not sure what would be worthwhile submitting as a PR but once it's ready then several smaller PRs are much easier to understand.
It's local stacked PRs and you can jump between them to edit as the ideas evolve.
https://stacked-git.github.io/
But if the nearby code is evolving quickly from other people this can be a bad approach because of merge hell when the work is finally submitted.