setTimeout (0) vs window.postMessage vs MessagePort.postMessage

Aparentemente, usandowindow.postMessage é ummaneira preferida enfileirar um retorno de chamada javascript assíncronowindow.setTimeout(fn, 0) em todos os navegadores modernos. Eu não consegui encontrar uma comparação semelhante entrewindow.postMessage eMessagePort.postMessage (usando o mesmoMessageChannel para enviar e receber mensagens de forma assíncrona). Alguém viu ou fez algum tempo? FazMessagePort.postMessage trabalhar para este fim em todos (onde disponível)?

[EDITADO] MessagePort.postMessage funciona para isso, maswindow.postMessage continua a ser uma forma preferida, IMO (veja minha resposta).

questionAnswers(1)

yourAnswerToTheQuestion