This is a bit tricky, because you want the files with no key in the end, so you can't just do print $2+0,$0
in the awk command. However, this awk-sort-cut pipeline should do what you want:
$ printf "%s\n" * | awk -F'_key' '{print $2+0==0?1000000:$2+0,$0}'| sort -n | cut -d' ' -f 2-
3_of_meany_key1_files.ext
6_key2_of_meany_files.ext
1_of_meany_files.ext
2_of_meany_files.ext
5_of_meany_files.ext