Clarifying this idea in the light of responses, and further suggestions:
As this is a button beneath the edit box it would have to be fully, properly written into the PHP that is MediaWiki - i.e. this function would arrive with a new version of the software. So small additions to the framework that make it work seem okay to me.
The button only appears for a logged in user. When you click it, the page saves to "User:Example/Pagename" rather than "Pagename".
To streamline this Drafts system, it could also then save into the user subpage a magic word like "__DRAFT__" which, on any page, forces the appearance of a new tab/toolbox option like "Finalise".
Clicking Finalise is then equivalent to having done all three of these at once: * Editing the original page * Pasting the new drafted text into the edit box * Clicking "Show changes" to display a diff
In the absence of this "Finalise" button and/or "__DRAFT__" magic word, the original "Save Draft" button could simply prepend the saved user subpage with automatic links to edit and diff the original article (with exact text specified in a System Message).
Or in the simplest incarnation, "Save Draft" just saves to a user subpage and that's it.
Whatever the case, this function would be infinitely useful because edits are often longer than a single session, but not necessarily longer than the time between revisions of an article. It would simply automate what a lot of people already do anyway (i.e. end up working offline), and would encourage more high-quality focused work on articles.