Here's a method that's really no different from the standard ones except it's generalized for copying cells and, theoretically, for Windows and Unix.

We'll use [`RunProcess`](http://reference.wolfram.com/language/ref/RunProcess.html) because this exists now, and tweak the [`ProcessEnvironment`](http://reference.wolfram.com/language/ref/ProcessEnvironment.html) to make it work for Mac:

    FrontEnd`unicodeCopy[s_String,
       enc : _String | Automatic : Automatic,
       lang : _String | Automatic : Automatic
       ] :=
      With[{
        encoding = Replace[enc, Automatic :> $CharacterEncoding],
        language = Replace[lang, Automatic :> $Language]
        },
       If[#["ExitCode"] =!= 0,
          FrontEnd`unicodeCopy::copyerr = "error in copy process:\n ``";
          Message[FrontEnd`unicodeCopy::copyerr, #["StandardError"]];,
          #["StandardOuput"];
          ] &@
        RunProcess[
         Switch[$OperatingSystem,
          "Windows",
          "clip",
          "MacOSX",
          "pbcopy",
          "Unix",
          {"xsel", "-b"}
          ],
         All,
         ExportString[s,
          "String",
          CharacterEncoding -> encoding
          ],
         ProcessEnvironment -> <|
           "LANG" ->
            Replace[ToLowerCase@language,
              "english" -> "en_US"
              ] <> "." <>
             Replace[encoding, {
               "UTF8" -> "UTF-8",
               "Unicode" -> "UTF-16"
               }],
           "PATH" -> Environment["PATH"]
           |>
         ]
       ];

(I'm using ``FrontEnd` `` for when I dump to `"MenuSetup.tr"`, just so it looks consistent)

Now we'll define a bunch of junk to generalize to make it work across an NB:

    FrontEnd`UnicodeCopy[c : {__Cell}] :=
      Replace[
       MathLink`CallFrontEnd[
        ExportPacket[Cell[CellGroupData[c]], "InputText"]
        ], {
        {s_String, __} :>
         FrontEnd`unicodeCopy@
          StringReplace[s,
           char : ("\\[" ~~ WordCharacter .. ~~ "]") :>
            ToExpression["\"" <> char <> "\""]
           ]
        }];
    FrontEnd`UnicodeCopy[c_Cell] :=
      Replace[
       MathLink`CallFrontEnd[
        ExportPacket[c, "InputText"]
        ], {
        {s_String, __} :>
         FrontEnd`unicodeCopy@
          StringReplace[s,
           char : ("\\[" ~~ WordCharacter .. ~~ "]") :>
            ToExpression["\"" <> char <> "\""]
           ]
        }];
    FrontEnd`UnicodeCopy[b_BoxData | _TextData] :=
      
      FrontEnd`UnicodeCopy@Cell[b];
    FrontEnd`UnicodeCopy[b_RowBox] :=
      
      FrontEnd`UnicodeCopy@Cell[BoxData@b];
    FrontEnd`UnicodeCopy[
       nb : _NotebookObject | _FrontEnd`NotebookObject | \
    _FrontEnd`SelectedNotebook | _FrontEnd`InputNotebook | \
    _FrontEnd`ButtonNotebook | _FrontEnd`EvaluationNotebook | \
    _FrontEnd`MessagesNotebook | _FrontEnd`HelpBrowserNotebook | \
    _FrontEnd`ClipboardNotebook
       ] :=
      FrontEnd`UnicodeCopy[Evaluate@NotebookRead@nb];
    FrontEnd`UnicodeCopy[
       nb : _InputNotebook | _EvaluationNotebook | _ClipboardNotebook | \
    _ButtonNotebook | _MessagesNotebook | _HelpBrowserNotebook] :=
      
      FrontEnd`UnicodeCopy@Evaluate@nb;
    FrontEnd`UnicodeCopy[Optional[Automatic, Automatic]] :=
      
      FrontEnd`UnicodeCopy@InputNotebook[];
    FrontEnd`UnicodeCopy[s_String] :=
      FrontEnd`unicodeCopy[s];
    FrontEnd`UnicodeCopy[e_] :=
      
      FrontEnd`UnicodeCopy[Evaluate@ToString[Unevaluated[e], InputForm]];
    FrontEnd`UnicodeCopy~SetAttributes~HoldFirst

Then I'll add this to my MenuSetup using the framework I wrote up [here](https://mathematica.stackexchange.com/a/145848/38205) and whose up-to-date implementation lives [here](https://github.com/b3m2a1/mathematica-BTools/blob/master/Packages/TRTools.m)

    FEMenuSetupAdd[
     {"Edit", "Copy As", 5},
     "Unicode" -> KernelExecute[ToExpression["FrontEnd`UnicodeCopy[]"]],
     MenuEvaluator -> Automatic,
     System`MenuKey["C", System`Modifiers -> {"Control"}]
     ]

This now lives under the `"Copy As"` menu:

[![copy as][1]][1]

And it can be used by function:

    FrontEnd`UnicodeCopy["asdasd\[Alpha]\[Beta]\[Gamma]"]
    
    asdasdαβγ

    FrontEnd`UnicodeCopy[Cell["asdasd\[Alpha]\[Beta]\[Gamma]"]]
    
    asdasdαβγ

Or by Control-C:

    FrontEnd`UnicodeCopy[Cell["asdasdαβγ"]]

One issue here is that I was a bit over zealous with some replacements when copying from cells and boxes (has to do with what comes out of the `ExportPacket`):

    (Command-C): "asdasd\\[Alpha]\\[Beta]\\[Gamma]" 
    (Control-C): "asdasd\α\β\γ" 

And just to include the original example:

    \[Alpha]\[Beta] + 
     Mod[\[Delta]\[CapitalPsi], 2\[InvisibleTimes]\[Rho]^2]
    
becomes:
    
    αβ + 
     Mod[δΨ, 2⁢ρ^2]

(note how, unfortunately, the added spacing from the cell copy is preserved)

  [1]: https://i.sstatic.net/3YGum.png