sim, você precisa de um melhor travamento no houseModel, para indicar que um addItemis está em andamento.
O problema é que várias solicitações podem chamar findById e ver o samehouse.items.length, então cada uma determina com base nesse snapshot (desatualizado) que não há problema em adicionar mais um item. O limite de atomicidade do nodejs é o callback; entre uma chamada assíncrona e seu retorno de chamada, outras solicitações podem ser executadas.
Uma solução fácil é rastrear não apenas o número de itens na casa, mas também o número de itens adicionais pretendidos. Ao entrar em addItem, aumente a contagem "quero adicionar mais" e teste isso.