You can change page size after creating a database, but it requires doing a vacuum. I.e. run "PRAGMA page_size = NNN" and then "VACUUM". Queries of the page size in between setting it and vacuuming will return the old page size, but it will change after you vacuum. The two commands must be done within the same connection, and I believe *outside* of a transaction.
The synchronous setting should be mutable, but I've found that you cannot change it while a transaction is open (though that does not appear to be documented anywhere).