If you have a relatively long-lived topic branch, what's the best way to
remotely save changes?

If you wanted to fork an OpenStack project on github, it would work
something like:

1. Fork the project on github.com to your own account
2. Clone the project locally
3. Add a remote branch to your local repo that points to the origin project
repo you forked from
4. Create a remote branch for gerrit
5. Create a branch for your changes in the forked project
6. Commit and push your changes to your branch
7. When your branch is ready for review:
a. pull from origin
b. rebase your changes to the current state of the master
8. git review

I've done steps 1-6 working but I can't easily test 7 & 8 without sending
in unnecessary changes for review. But if you lost your changes, you would
just clone your forked project again.

Is this viable? Is this a reasonable way to remotely save changes?

One alternative would be to continually save changes using review drafts
with "git review -D". In this case if you lost your changes, you would have
to clone the origin project and then fetch the changes from gerrit.