I only added the logging to confirm my suspicion that the two functions were being executed in the opposite order to what we expect. This possibility occurred to me only after I spent quite a while just being baffled. The behaviour I see is the same whether the logging is in place or not; I've removed it again to be sure.
The reason I want to target a specific div instead of .page is so I can control how banner appears in the context of the layout I've designed; in the pagefooter, I have two column divs, one for backlinks, and the other for the publish/approval banner. Not directly relevant, but here's what I'm going for:
+---------------------+
| Title |
| Page content |
| More content |
+-----------+---------+
| Backlinks | Publish |
+---------------------+
Behaviour is the same with .page as with the specific div target. I've just double-checked this as well.
PS there's nothing else in my userscript.js besides this.