The basic code for 2 and 3 could be as follows. Put it in a new module of your template. It puts a copy of the previous page before the 'button' and updates the fields.
Name the 'button' content control "NewPage".
Option Explicit
Sub AddAPage()
Dim orng As Range
Dim oStory As Range
Selection.GoTo What:=wdGoToPage, Which:=wdGoToPrevious, Count:=1, Name:=""
Set orng = ActiveDocument.Bookmarks("\page").Range
orng.Copy
orng.Collapse 0
orng.Paste
DoEvents
orng.Select
orng.Collapse 1
For Each oStory In ActiveDocument.StoryRanges
oStory.Fields.Update
If oStory.StoryType <> wdMainTextStory Then
While Not (oStory.NextStoryRange Is Nothing)
Set oStory = oStory.NextStoryRange
oStory.Fields.Update
Wend
End If
Next oStory
Set oStory = Nothing
lbl_Exit:
Exit Sub
End Sub
Then you can add to Greg's macro to process the content control 'Button' when it is clicked.
Option Explicit
Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl)
Select Case ContentControl.Title
Case "NewPage"
AddAPage
Case "Conditional1"
If ActiveDocument.SelectContentControlsByTitle("Main1").Item(1).ShowingPlaceholderText Then
ContentControl.LockContents = True
Else
ContentControl.LockContents = False
End If
End Select
lbl_Exit:
Exit Sub
End Sub