Simple workflow:
undo/redo moves back/forward in history as usual,
Edit file, undo, edit again -> new branch created,
Edit file, undo, redo -> stay on same branch

Does anyone know of a GTK or Qt text editor that has branching history?

If not, do you think it would be difficult? I was thinking you should be able to use git or some other VCS, but I don't know how easy it would be to integrate into the editor. Basically each edit would be committed, browsing back would open a previous commit, and new edits on that commit would create a new branch and commit to that branch. Theoretically you could even rebase or merge with the head or another branch, too.