Point 1 is caused by what @Eric explained in the post you linked: How to always have a multiple of four as the number of pages - #4 by Eric
You can see it if you uncomment and comment the highlighted line in this simplified example:
#set page(paper: "a7")
#context {
let num = here().page()
// "" // <- here
pagebreak()
[#num]
}
Point 2 is caused by Typst not finding a stable document state in the 5 layout iterations it has available caused by Point 1. That’s also why you get the warning “Layout did not converge within 5 attempts”.
To get insights on what he compiler does in the 5 iterations, you can play around with layout-ltd.
#import "@preview/layout-ltd:0.1.0": layout-limiter
#show: layout-limiter.with(max-iterations: 1)
// your code here