戴绿帽子 as based on a pun?
iTalki has an article that alludes to it:


  
  戴绿帽子（Wearing a green hat)
  
  
  If you are traveling in China, you might notice a curious thing – you will never find a Chinese man wearing a green hat. Let it be a warning to you: no matter how curious you are, you’d better not ask them why they don’t wear a green hat! The reason is, in Chinese culture, wearing green hat has a dark meaning: the one wearing it was cuckolded. And, be sure you don’t wear one yourself, either.
  
  The source is a story from the Ming Dynasty. Emperor Zhu Yuanzhang enacted a law, which required men who worked in the prostitution trade to wear green hats. Later, it became common to say about man whose wife had an affair, that she made her husband wear a green hat. It’s best to stay away from those green hats!


Liang'an (which is a free Pleco add-on) also talks about the origin:


  古代制度, 罪人及妓女必裹帶綠巾, 以示屈辱。後用以譏諷妻子有外遇, 不守婦道者, 而謔稱其夫為戴綠帽子。


Criminals and prostitutes had to wear green cloth as a type of humiliation in the past. Thus the wearing of a "green hat" came to represent a cheating wife.

The Nan Fang also states:


  Although the origin of the phrase remains unknown, there are a number of possible explanations. One theory suggests that the families of prostitutes were forced to wear green hats during the Yuan Dynasty. Another says that male brothel workers wore green hats during the Tang Dynasty. A third theory suggests that the Chinese word for “cuckold” sounds a lot like “wear a green hat”.


Like you mention though, I'm not seeing what similar sounding words there are that match. 

I would imagine the Liang'an definition is quite authoritative, instead.