So I was able to get it working!
But just as some context the esp is not connected to internet. The purpose was for a user to connect to the ESP’s wifi via their phone and a capture portal to show up, so they could submit their wifi SSID and password. As a result the ESP would be fulfilling the DNS requests.
I was very close, it was just the endian-ness of one uint16_t that was wrong and preventing it from working properly.