One option or strategy is to migrate the VCPU that is stalled, as well as the dormant page, to another node that does have already zeroed pages that are free (or pages that are to be zeroed, or at least free space for free pages). In this case, ownership of the dormant page (guest physical address) is transferred to the remote node, where the dormant page is then converted as described above (e.g., by mapping the transferred dormant page to an already zeroed page at the new node, or to a free zeroed page that is allocated on demand off of the new node's list of real physical pages to be zeroed).
Another strategy to handle the stall and obtain a free page to map to the dormant guest physical address is for node_0 to migrate a non-dormant page (with contents) that it owns to another node, thereby freeing space on node_0. This leaves a free page of physical memory that may then be zeroed and mapped to the guest physical address.
Another option is to swap a page of contents on node_0 with a page of zeroes from another node. The stall may then be satisfied on node_0.