Is there an encoder which can automatically detect the intrinsic order of an ordinal variable and assign values accordingly?
Yup, it should be target encoding. By calculating the target mean for each category, you are ordering the categories based on the target, I don't think of a best way to order them. Of course, this is only valid in a supervised learning setting. If not, I can't think of a way of automatically ordering categories.
See this question and this blogpost to dig deeper in target encoding.