I enrolled in the Plugin Development Basics today to check it out, and was instantly reminded at how jarring as a student the 'Mark as complete' is.
It is a way more natural flow to click into a page, read it, scrolling to the bottom as you go, and then when you get to the bottom you get a 'Mark as complete' button right there on the page. This is not only more natural but also gives a slightly better chance that the student has actually clicked into the page, and has actually read through the page. Every other LMS I've used Totara, Coursera etc, even courses in wordpress I've done work this way and I think for genuinly better UX reasons.
a) new activity competition setting for pages so say whether the completion button is on the course page, or inside the page, or both
b) possibly a site wide setting to set the default, and or lock it down so it's consistent everywhere
This also has the side benefit of when you have finished the page and go back to the course page you not only get the correct completion status but you might also get the next activities unlocked and visible, so it side steps the slowness due to another page reload when ticking the box (see MDL-41165)