@bangar20

This just a high level solution not exactly to your use case. But it will help to design your solution.
1. As soon workflow trigger. It will lock page.
2. You can use any Participant Chooser as per need. There are others which may be used for your need. You can have this before lock as per need.
3. Assigned reviewer can choose next step or you can write custom logic to move to next step as per your need.
4. Left Branch - If rejected. Assign this to workflow initiator(You can use ECMA script to get Workflow initiator)
5. Right Branch - If approved,
-> Reviewer can schedule publish. In this case activate step not required.
->You can write custom step, If this has to be done in workflow only(If don't want to use OOTB publish schedule)
-> Unlock Page
I hope this will help. Again, This is not the exact solution to your use case. But a high level solution as per how much I understood.
ECMA script function to get workflow initiator
function getParticipant() {
return workItem.getWorkflow().getInitiator();
}