An update on what I have achieved ...
Having rooted the phone, I found that regularly (every 30 minutes) restarting the mdnsd service reset the count of sockets it used and kept them at a fairly small number. However after a day, the maximum number it would go to went to about 50, and then wouldn't go beyond 3. Every restart of the service, it would release then re-open 3 sockets and never acquire any more. The implication therefore is that the sockets are being released by mdnsd but not freeing the resources in the underlying networking. The good thing was however, that with mdnsd now limited to 3 sockets, the CPU load problem, and hence the battery problem never reappeared, so it looked like a combination of out-of-resources in both mdnsd and in the underlying networking that caused the CPU problem on my phone at least. While this seems to solve the battery problem, I am not sure if mdnsd will continue work as expected as it is will still be trying to acquire sockets it can't get - hence the proper fix would have to be restarting the phone. So I went to the next step.
I extracted a copy of the mdnsd executable file from an Android lollipop (5.0) phone, courtesy of Google's Android Studio and their pre-built Android emulators, making sure it was for the same 32bit ARM type of CPU. The file was twice the size of one on my phone, but that was because it has been build using static libraries (libraries included in the executable rather than linked to shared libraries as the Kitkat executable was). The advantage of using static libraries is that it makes it less of a risk that something changed in the underlying Lollipop libraries. I copied the mdnsd executable onto Android Studio's 32bit ARM Kitkat build - and it appeared to run, start, stop etc without any problem. I have now replaced the one on my real Note 2 and it seems to be working as normal - the number of sockets is back to one per 5353 port for IPV4 and one for IPV6 and it never goes up - which is exactly the behaviour I would expect to see. The broadcasts are appearing on the network as before, so it looks like it is working properly at last.
I am now monitoring and will see how it goes after a few days, but I expect removing the underlying bug in the Kitkat mdnsd by putting in a proper build will fix the battery problem for me once and for all and make sure printing and all the other things mdns is used for keep working. Unless that is Samsung issues a firmware upgrade from 4.4.2 to 4.4.4 - which is very very unlikely - when I would have to re-replace the file. If Samsung upgrade Note 2 firmware to V5 Lollipop (also very very unlikely) or V6 Marshmallow (you have to dream don't you) - then the problem will be fixed anyway.
While this solution does require rooting the phone to swap the file, so it is not for the faint hearted, it can be un-rooted again straight after, which I will do for safety reasons once I know it is working.