be to do表示安排中的将来事件。如果be用现在时,如 He is to come tomorrow. 就表示他明天来是现在的安排。He was to come the next day. 他第二天来是当时的安排。这个句式只表示在be的这个时间的安排,至于不定式的动作后来发生了没有是不得而知的。后来可能发生,也可能没发生,这无关紧要。本句只是表示在be的这个时候的一个安排而已。
所以小说原句没有任何问题。至于后来没有留门,并不影响这个句子式的使用。只有在倒叙的时候,先说了没有留门这个结果,再回头说当初是安排要留门的,才会用was to have left the door open.