Implement the "new field" option at https://www.mediawiki.org/wiki/Requests_for_comment/Page_deletion . I.e., add a new field to the page table, pg_deleted (analogous to rv_deleted). Also add a new field to the revision table, rv_logid, to store the log_id of the deletion event. Upon restoring a page, only the revisions pertaining to the pertinent deletion event would be restored.
So, suppose you revision delete some revisions from a page (log_id 1). Then you delete the whole page (log_id 2). Then you undelete the page. You only restore the revisions that have rv_logid 2, and leave the rv_logid 1 revisions deleted.
This will render the archive table obsolete, so it can be eliminated.