Draft: bark: Refactor WalletAction + various related changes
First commit refactors the action trait/driving to no longer have on_rejection and on_retry, and no error path on advance. This means that the advance function needs to capture all cases internally and just return what the driver should do. Tried to keep this commit as close as possible to a mere refactor, but because of the change, some semantic changes are also in there.
The second commit the refactors the resulting code a bit more by basically inlining remnants of the old code that were kept intact for reviewability of the first commit.
Then comes a series of small commits of bugfixes and improvements. Claude found all those, all seem correct to me.
I did consider refactoring further to change the advance function to take &mut self instead of self. It cleans up a lot of weird constructions, but it also opens the door for accidentally persisting bad state. It's way more opinionated so I kept it out of this PR.