If you want a "staging area" just use a temporary commit and keep ammending it with `hg crecord --amend`. There really is no difference between a commit and a staging area except the name. If you're afraid of pushing your WIP commit, use `hg crecord --secret` or `hg commit --secret` so that your commit will be in the secret phase and won't be pushed until you declare it draft with `hg phase --draft`.
That's a neat trick. I think it's doing it a disservice to say there's no difference except the name, though. While true, I think anyone who prefers hg to git (self included) shouldn't undersell the importance of interface.