Last century doesn’t count.
But more seriously, I tried to find where it’s clearly documented and I don’t seem to be very lucky today.
Windows (probably at least since XP) should prefer first resolver, but will switch to another immediately when first timeout (one second) occurs, and won’t switch back to first resolver automatically, until another timeout with the new one. Quick test with Windows 7 confirms that making current resolver unavailable forces use of another one. But I also saw another switch to third resolver without previous timeout, so there’s probably more to that. Windows 10 is said to be even more wild and send queries in parallel to multiple resolvers, but it may be only with multiple interfaces, I don’t see it when system has only one.
I didn’t find anything good about Linux.
MikroTik has only this to say about RouterOS in manual:
When both static and dynamic servers are set, static server entries are more preferred, however it does not indicate that static server will always be used (for example, previously query was received from dynamic server, but static was added later, then dynamic entry will be preferred).
But it doesn’t go in detail about multiple static or multiple dynamic resolvers. I think someone from MikroTik wrote some details here in forum, but I can’t find it.
In practice, it’s best to not mix different kind of resolvers, because switches to other than first one will definitely happen, at least sometimes. In OP’s case, it’s not that bad (well, it is, but not completely tragic), if the resolution order doesn’t work as expected, then worst case, other resolver will return valid IP address and ads won’t be blocked. It’s worse when people want the “primary” resolver to answer queries for some internal domain, because switch to public resolver means negative answer and unavailability of hostname for a while, thanks to negative caching.