dhcp request (ethernet.begin(mac)) hangs in parseDHCPResponse of Dhcp.cpp

Very rare.

In your application, the best you can hope for is for you to find the solution. I do not recommend two dhcp servers on the same localnet.

My routers have a routine that checks for what is referred to as a "rogue dhcp server" on each localnet. If it finds one, it will attempt to "arp poison" any contact with that mac address.