##Javascript (ES6), 57 5454 53 bytes
l=>l.sort((a,b)=>(s=a=>1/a+`${a}`.length)(a)-s(b))[0]
For the record, my previous version was more math-oriented but 1 byte bigger:
let f =
l=>l.sort((a,b)=>(s=a=>1/a+`${a-~Math}`.log10(a)length)(a)-s(b))[0]
console.log(f([1])); // -> 1
console.log(f([9])); // -> 9
console.log(f([1729])); // -> 1729
console.log(f([1, 1])); // -> 1
console.log(f([34, 3])); // -> 3
console.log(f([38, 39])); // -> 39
console.log(f([409, 12, 13])); // -> 13
console.log(f([11, 11, 11, 1])); // -> 1
console.log(f([11, 11, 11, 11])); // -> 11
console.log(f([78, 99, 620, 1])); // -> 1
console.log(f([78, 99, 620, 10])); // -> 99
console.log(f([78, 99, 620, 100])); // -> 99
console.log(f([1, 5, 9, 12, 63, 102])); // -> 9
console.log(f([3451, 29820, 2983, 1223, 1337])); // -> 3451
console.log(f([738, 2383, 281, 938, 212, 1010])); // -> 938