Pin D8 (GPIO15) must be LOW during boot.
It’s difficult to tell from your diagram (which uses an Arduino Mini) and your description exactly how this is wired, but I suspect that D8 is being pulled HIGH, preventing the NodeMCU from booting in the correct mode.