I think if DYM returns good result we should stop there. However, that really depends - I could argue wrong kbd/language may be better in some cases. I would propose just make the order flexible enough (may be in code for starters even, or in config) and stop once we've got one good result and then just try it out and see if we're seeing anything weird and if we do, maybe change the order.
Topic on Talk:Wikimedia Discovery/So Many Search Options
It's hard to decide whether DYM results are good. As I understand it, it doesn't do any word-level n-grams (bigrams would be reasonable) to decide whether the new suggested word fits the context of the rest of the query. There can be crazy recommendations. Do we know if it is good based on the number of results? I haven't thought about it carefully, so I'm not sure.
I do agree that wrong keyboard could move up the list, but since that is not very-well developed either, I'm not sure how it should play out. The queries generally look like gibberish, but I could imagine spelling correction finding something reasonable to correct to in some cases. (I think the general lack of overlap in applicability has spared us from interactions so far—though I worry in particular about quotes plus anything else.)
I have been thinking of language detection as a last-ditch effort, so I put it last, but it doesn't have to be. It's not super highly accurate—but then maybe none of these really are.