I set a page to display when the WAF is blocking a page (403).
But oddly, it’s not this page, but the 500 page, which is displayed.
However, the custom page are corrects (previews work, they are pure HTML page, etc.)
It sounds like you’ve set it up correctly. How did you test the WAF page?
You may just have to open a Support Ticket. Be sure to post the ticket number here for more attention.
To contact Cloudflare Customer Support, login & go to Cloudflare | Web Performance & Security and select get more help. If you receive an automatic response that does not help you, please reply and indicate you need more help.
The block page returns an HTTP 403 status code, but the error that’s presented is a bit more specific to the Cloudflare service that issued the block. In your case it’s a 1020, which is generated from Firewall Rules as explained in the document you linked.