何かの関数が DOMContentLoaded と関連づいているときに、その状態を検知したいときには、document.readyState が使える。

console.log(document.readyState);
// loading:DOMの解析中
// interactive:DOMの解析が終わり、画像やJavaScript、CSSなど、サブリソースの読み込み中(DOMContentLoaded)
// complete:全ての読み込みが完了(window.load)

これで、どの段階かを判断して分岐のが望ましい。
いままでずっとグローバル関数 or クロージャで現在の解析情報を検知してたぜ。。