When I set the numbering type for the Terms and Conditions page to HOLD, the &PAGE& variable will contain the correct value. It is not being printed on the T&C page itself, so we're good there. This now results in pages 1/4, T&C, 2/4 and 3/4.
So far I have seen that the &SAPSCRIPT-FORMPAGES& value is being incremented for every page it passes. After all pages have been processed, SAP prints that final value to all pages. It seems the system keeps a blank space for that value until end of processing.
Now when I read that value on every page and store it in my own global variable, that global variable would simply increase for every page. Resulting in pages 1/1, T&C, 2/2, 3/3.
Perhaps we're not talking about the same thing here, I get the feeling I don't fully understand what you are trying to tell me.