Answer
The Custom Action needs to be created directly within the same projection that's actually linked to the page you want the button on, not in a separate, newly created projection configuration — a Custom Action defined in an unrelated projection won't show up as an option in that page's ExecuteAction element. Creating the Custom Action logic inside the correct target projection is what makes it selectable as an event action when configuring the button in Page Designer.