Solange, bis die `external` Bibliothek für TikZ selbst eine Möglichkeit bietet, zwei statt nur einem externen Aufruf zu tätigen, kann man genau das mit folgendem Patch erreichen:
    \usepackage{etoolbox}
    \makeatletter
    \newif\if@twoexternalruns
    \newcommand*{\nextwithtwoexternalruns}{\@twoexternalrunstrue}
    \renewcommand*{\@twoexternalrunsfalse}{\global\let\if@twoexternalruns\iffalse}
    \patchcmd\tikzexternal@externalizefig@systemcall@@
      {\immediate\write18{\pgf@tempa}}%
      {\immediate\write18{\pgf@tempa}%
        \if@twoexternalruns\@twoexternalrunsfalse\immediate\write18{\pgf@tempa}\fi}%
      {}{\patchFailed}
    \makeatother
Nun kann man unmittelbar vor `\begin{tikzpicture}` mit `\nextwithtwoexternalruns` dafür sorgen, dass für genau diese nächste Umgebung automatisch zwei externe Aufrufe statt nur einem durchgeführt werden. Insgesamt sähe das dann also beispielsweise so aus:
    \RequirePackage{filecontents}
    \begin{filecontents}{\jobname Data.asc}
    2   224694229071385000  8.97    8.72    3.275
    5   561735572678462000  8.25    5.25    4.91
    10  1123471145356920000 8.5 4.92    4.92
    30  3370413436070770000 7.75    3.5 6.19
    60  6740826872141550000 7.09    4.5 5.82
    120 13481653744283100000    6.85    4.75    6.06
    \end{filecontents}
    \documentclass{article}
    \usepackage{scrlfile}
    \usepackage{pgfplots}
    \pgfplotsset{compat=1.10}
    \usepackage{siunitx}
    \usepgfplotslibrary{external}
    \tikzexternalize
    \tikzsetexternalprefix{external_figs/}
    
    \usepackage{etoolbox}
    \makeatletter
    \newif\if@twoexternalruns
    \newcommand*{\nextwithtwoexternalruns}{\@twoexternalrunstrue}
    \renewcommand*{\@twoexternalrunsfalse}{\global\let\if@twoexternalruns\iffalse}
    \patchcmd\tikzexternal@externalizefig@systemcall@@
      {\immediate\write18{\pgf@tempa}}%
      {\immediate\write18{\pgf@tempa}%
        \if@twoexternalruns\@twoexternalrunsfalse\immediate\write18{\pgf@tempa}\fi}%
      {}{\patchFailed}
    \makeatother
    \begin{document}
    \nextwithtwoexternalruns
    \begin{tikzpicture}
    \begin{axis}[
       xlabel = {xlabel},
       ylabel = {ylabel 1},
       smooth,
       axis y line*=left, 
       xmin = -2e18,
       xmax = 1.6e19,
       scaled x ticks=false,
       xticklabel={\pgfmathprintnumber[sci,sci generic={mantissa sep=\times,exponent={10^{##1}}}]{\tick}},
       xtick = {0,5e18,1e19,1.5e19},   
       legend style={draw=none},
    ]
    \addplot[black, mark =x] table [x index = 1, y index = 2] {\jobname Data.asc};
    \label{1}
    \addplot[red, mark =x] table [x index = 1, y index = 3] {\jobname Data.asc};
    \label{2}
    \end{axis}
    
    \begin{axis}[
       ylabel = {ylabel 2},
       smooth,
       axis y line*=right, 
       xmin = -2e18,
       xmax = 1.6e19,
       ymin = 2.9,
       ymax = 7.2,   
       %ytick ={3,4,...,9},
       xmajorticks=false,
       scaled x ticks=false, 
       legend style={draw=none},
    ]
    \addlegendimage{/pgfplots/refstyle=1}\addlegendentry{\scriptsize{name 1}};
    \addlegendimage{/pgfplots/refstyle=2}\addlegendentry{\scriptsize{name 2}};
    \addplot[green, mark =x] table [x index = 1, y index = 4] {\jobname Data.asc};
    \addlegendentry{\scriptsize{name 3}};
    \end{axis}
    \end{tikzpicture}
    \end{document}
Das schöne daran ist: Da genau der eine Aufruf der `external` Bibliothek verdoppelt wird, müsste es vollkommen unabhängig von Betriebssystem funktionieren.
Ich erhalte auf diesem Weg direkt:
![Ergebnis nach dem ersten Lauf][1]
In der `log`-Datei ist zu erkennen, dass auch tatsächlich zwei `pdflatex`-Aufrufe von `external` durchgeführt werden:
`===== <pre>`===== 'mode=convert with system call': Invoking 'pdflatex -shell-escape -halt-o
n-error -interaction=batchmode -jobname "external_figs/test-figure0" "\def\tikz
externalrealjob{test}\input{test}"' ========
\openout3 = `test.auxlock'.
runsystem(pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname
 "external_figs/test-figure0" "\def\tikzexternalrealjob{test}\input{test}")...e
xecuted.
runsystem(pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname
 "external_figs/test-figure0" "\def\tikzexternalrealjob{test}\input{test}")...e
xecuted.
\openout3 = `test.auxlock'.`
`test.auxlock'.`</pre>
Beim nächsten Lauf erkennt `external` außerdem, dass nichts zu tun ist, so dass *beide* Aufrufe entfallen.
Nachteil ist, dass bei Fehlern im TikZ-Code trotzdem zwei Aufrufe stattfinden, der Fehler also zweimal auftritt.
  [1]: http://texwelt.de/wissen/upfiles/test13.png