Generally one wouldn't use a watchdog as a wake-up mechanism. You'd instead want to dedicate a general purpose timer (from e.g. chapter 21 of the spec you referenced) for this. The datasheet even mentions that the reason they included "No reset mode":
the intent of the watchdog interrupt is to allow debugging watchdog activity without resetting the device when the watchdog overflows.
So, once you wake up from this, the only option is to disable the interrupt, and at that point you'll never be able to wake with this mechanism again.
But, your ISR code is flawed, as you'll never get into your first conditional. You should change it to:
void WDT_IRQHandler(void)
{
NVIC_DisableIRQ(WDT_IRQn);
}
Upon the return from this interrupt, the CPU should be awake, and should execute the next instruction after the __WFI;
that put it to sleep.