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

It sounded like this should fix the problem, yet somehow doesn't.

Somehow doesn't? Does it somehow still lock up in the Ethernet.begin(mac) dhcp routine? Did your shield somehow get an ip assigned or somehow not?