A.S.
He can't punish him for not saying goodnight. It's unreasonable and besides, it will just make him want to resist it even more.
Why don't you try leting DH take him up to bed in a very nonconfrontational manner where he then says goodnight to you. Or what about if you BOTH take him up to bed? OR what if DH tickles the goodnight out of him so that they bond and there is no demand for the goodnight?