Welcome! You were already close. In order to draw the stuff in the xy plane, it might be a good idea to load the TikZ library 3d.
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[dvipsnames]{xcolor}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{3d}
\begin{document}
\begin{tikzpicture}[thkline/.style={thick, blue, >=stealth},font=\sffamily]
\begin{axis}[anchor=origin, xmax=15, ymax=15, zmax=6, axis lines = none,
colormap={red}{color=(lightgray) color=(lightgray)},
clip=false]
%background stuff
\draw[ultra thick] (0,0,0) coordinate(O) -- (-25,0,0)
node[pos=2/3,above,sloped]{acceleration};
\begin{scope}[canvas is xy plane at z=0,>=stealth]
\draw[ultra thick,->] (0,0) -- (-25,0);
\draw[very thick,->] (0,30) -- (0,0);
\draw[->] (0,0) coordinate(O) -- (0,-7);
\draw[very thick] (0,0) arc(0:-30:50);
\end{scope}
% torus
\addplot3[domain=0:360,y domain=0:360, samples=25, surf, z buffer=sort,
opacity=0.6]
(
{3 * sin(x)},
{(4 + 3 * cos(x)) * sin(y)},
{-(4 + 3 * cos(x)) * cos(y)});
% foreground
\begin{scope}[canvas is xy plane at z=0,>=stealth]
\draw[->] (0,-7) -- (0,-30);
\draw[very thick,->,overlay] (-50,0)+(-8:50) arc(-8:-20:50);
\draw (0,-10) arc(-90:-180:10) node[midway,left]{$\mathsf{90}^\circ$};
\end{scope}
\end{axis}
\end{tikzpicture}
\end{document}
Unfortunately there is no real 3d engine coming with TikZ/pgfplots, so one has to draw the things in the appropriate order. I indicate this in the code. There is an angle of 8 which I estimated.

It is also possible to project the arrows on the planes with \pgflowlevelsynccm. However, the transformations pgfplots performs prevent me from adding this to the scopes inside the axis. Therefore, one may export the view and scaling from the axis and add the scopes outside, with the stuff behind the torus on the background layer.
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[dvipsnames]{xcolor}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{3d,backgrounds,calc}
\begin{document}
\begin{tikzpicture}[thkline/.style={thick, blue, >=stealth},font=\sffamily]
\begin{axis}[anchor=origin, xmax=15, ymax=15, zmax=6, axis lines = none,
colormap={red}{color=(lightgray) color=(lightgray)},
clip=false]
%background stuff
\draw[ultra thick] (0,0,0) coordinate(O) -- (-25,0,0)
node[pos=2/3,above,sloped]{acceleration};
\path let \p1=($(1,0,0)-(0,0,0)$),\p2=($(0,1,0)-(0,0,0)$),
\p3=($(0,0,1)-(0,0,0)$) in
\pgfextra{\xdef\myxx{\x1}\xdef\myxy{\y1}
\xdef\myyx{\x2}\xdef\myyy{\y2}
\xdef\myzx{\x3}\xdef\myzy{\y3}};
% torus
\addplot3[domain=0:360,y domain=0:360, samples=25, surf, z buffer=sort,
opacity=0.6]
(
{3 * sin(x)},
{(4 + 3 * cos(x)) * sin(y)},
{-(4 + 3 * cos(x)) * cos(y)});
% foreground
\begin{scope}[canvas is xy plane at z=0,>=stealth]
\draw (0,-10) arc(-90:-180:10) node[midway,left]{$\mathsf{90}^\circ$};
\end{scope}
\end{axis}
\begin{scope}[x={(\myxx,\myxy)},y={(\myyx,\myyy)},z={(\myzx,\myzy)},
canvas is xy plane at z=0,>=stealth,on background layer]
\pgflowlevelsynccm
\draw[line width=0.7cm,->] (0,0) -- (-10,0);
\draw[line width=0.5cm] (0,30) -- (0,0);
\draw[line width=0.5cm,->] (0,30) -- (0,20);
\draw[line width=0.1cm,->] (0,0) coordinate(O) -- (0,-7);
\draw[line width=0.5cm] (0,0) arc(0:-30:50);
\end{scope}
% foreground
\begin{scope}[x={(\myxx,\myxy)},y={(\myyx,\myyy)},z={(\myzx,\myzy)},
canvas is xy plane at z=0,>=stealth]
\pgflowlevelsynccm
\draw[line width=0.1cm,->] (0,-7) -- (0,-30);
\draw[line width=0.5cm,->,overlay] (-50,0)+(-8:50) arc(-8:-20:50);
\end{scope}
\end{tikzpicture}
\end{document}

3dlibrary had a bug that got fixed about a year ago, but this bug should not lead to the displacement. What may, however, potentially explain the displacement is that the coordinate(axis cs:0,0,0)does not sit at(0pt,0pt)in the ambienttikzpicture. So you may resolve the issue by addingshift={(axis cs:0,0,0)}to the canvas scopes. – Oct 24 '19 at 15:55pdflatex.) You may try exchanging the order:\begin{scope}[shift={(axis cs: 0,0,0)},canvas is xy plane at z=0,>=stealth]but to me this seems very mysterious. You can also use the second proposal, remove the\pgflowlevelsynccmand replace the line widths by those from the first example. Nonetheless I am really surprised and cannot reproduce the issue at the moment. – Oct 24 '19 at 16:56pdflatexorXeLaTeXdoesn't make a difference on the result. Anyway - thanks a lot for your competent support! – Number42 Oct 25 '19 at 06:51