Проблема с юникодом должна в Argparse нормально работать, так как по умолчанию в консолях практически везде UTF-8, в крайнем случае модифицируем в дочернем классе
ArgumentParser.convert_arg_line_to_args(arg_line)
Префиксы тоже кастомизируются prefix_chars.
На счет кавычек Вам все равно надо будет как-то отделять одни аргументы от других. В зависимости от задачи можно либо варьировать с nargs для конкретной опции, либо добавлять subparser, либо опять же переопределить указанный метод выше.