Why resolution goes first: your filtering resolver forwards what it does not know, and when the line dies that path either errors fast or hangs. A hang is much worse, because every service waiting on a lookup waits with it and the cupboard looks dead when it is fine.
Give the resolver explicit local records, set a short forward timeout, then test by unplugging. Five minutes and the answer is not guessable.