I looked at the E131 code (E131.cpp) and could not find where the state of the board was configured anywhere after powerup, to be able to determine weather the ESP was set to AP or STA mode.
However I did see, as the issue had called out, that WiFi.localIP() was being used instead of WiFi.softAPIP() in the udp.beginMulticast call. I changed it but this made no difference. The board still reboots, so I switch it back to the original code.
So the next step I too was to add the following to the initMulticast procedure, right before the udp.beginMulticast call:
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
When compiled and ran the code, it now connects in multicast mode, still returning valid universe, multicast and ip address information, and no longer crashes with the watchdog timer However it also appears I now no longer am receiving any packets (at least none that are parsed). I did not have the time to look further to see if the mode setting is impacting the way data is retrieved from the udp object to see why this would be. I also had thought of changing the mode to "both" to see if this would work.
Could it be that the wifi library itself has a flaw? I saw where you responded to a thread started by user "picstart" about UDP multicast receive crashes and some sort of bug introduced with the latest core 2.2.0. Do you know if there is a core in existence previous to this where multicast does work?