skykid Short explanation as to why it might have worked sometimes with fastboot on:
Windows’ fast boot is simply putting the system’s drivers into hibernation and resuming those from the disk when it wakes up. This is one of the deeper sleep states that the computer can be put into, and when this happens it sets an appropriate flag in the BIOS to say to it “hey, i’m still using this hardware, you can’t touch it.” This obviously prevents any OS other than the one which set it from booting.
Theoretically, if Windows was “properly” shut down at some point, such as by the user manually invoking it via command prompt, an update, a power interruption, or the Windows partition never booting in the first place, this flag would have never been set by Windows. Therefore, allowing any OS to boot.