I feel like I lose control when I fetch main and then merge into my branch. Whereas when I fetch main and rebase (with rerere as pointed out in another comment to **reuse conflict resolutions**), I feel more in control.

You could create an alias/script to "pre-squash" b4 fetching and rebasing.