Answer that emerged from the chat: not a real superscript but simple.
\documentclass{article}
\usepackage{lipsum}
\usepackage[normalem]{ulem}
\newcommand{\textss}[1]{\,\scriptsize\uline{#1}}
\begin{document}
\lipsum[1-5]
more text and more text and\textss{more text and more text and more text and more text
and more text and more text and more text and
more text and more text and more text and more text
and more text}
\end{document}

This works over a page break. The following, older proposals do not (but are subscripts).
Here is a possible way. It uses (a variant of) this answer to measure the remainder of the line. You need to compile twice.
\documentclass{article}
\usepackage{soul}
\usepackage{tikzpagenodes}
\makeatletter
\newcommand{\measureremainder}[1]{%based on https://tex.stackexchange.com/a/17808
\begin{tikzpicture}[overlay,remember picture]
\path (0,0) coordinate (aux);
\pgfpointdiff{\pgfpointanchor{aux}{center}}{\pgfpointanchor{current page text area}{east}}
\xdef#1{\the\pgf@x}
\end{tikzpicture}%
}
\makeatother
\newcommand{\textss}[1]{\textsubscript{\,\measureremainder{\myrem}%
\begin{minipage}[t]{\the\dimexpr\myrem-0.5pt}
\scriptsize\ul{#1}
\end{minipage}}}
\begin{document}
Marmots are very good at hibernating\textss{and I made some comments here, but the text maybe too long to feed a line}
and cats do not only write catcode.
\end{document}

ADDENDUM: An attempt to incorporate your suggestions.
\documentclass{article}
\usepackage[normalem]{ulem}
\usepackage{tikzpagenodes}
\makeatletter
\newcommand{\measureremainder}[1]{%based on https://tex.stackexchange.com/a/17808
\begin{tikzpicture}[overlay,remember picture]
\path (0,0) coordinate (aux);
\pgfpointdiff{\pgfpointanchor{aux}{center}}{\pgfpointanchor{current page text area}{east}}
\xdef#1{\the\pgf@x}
\end{tikzpicture}%
}
\newcommand{\measurevertdist}[1]{%
\begin{tikzpicture}[overlay,remember picture]
\path (0,0) coordinate (aux1);
\pgfpointdiff{\pgfpointanchor{aux1}{center}}{\pgfpointanchor{aux}{center}}
\xdef#1{\the\pgf@y}
\end{tikzpicture}%
}
\makeatother
\newcommand{\textss}[1]{\textsubscript{\,\measureremainder{\myrem}%
\hspace*{\the\dimexpr-1\linewidth+\myrem+0.5pt}\begin{minipage}[t]{\the\dimexpr\textwidth-1pt}
\hspace*{\the\dimexpr\linewidth-\myrem}\scriptsize\uline{#1}%
\measurevertdist{\mydist}%
\measureremainder{\myrem}%
\end{minipage}}%
\ifdim\mydist>5pt\relax
\\[\the\dimexpr\mydist-\baselineskip]%
\hspace*{\the\dimexpr\linewidth-\myrem-0.5ex}
\else
\hspace*{-\myrem}%
\fi}
\begin{document}
Marmots are very good at hibernating\textss{and I made some comments here, but the text maybe too long to feed a line}
and cats do not only write catcode.
Ducks are very good swimmers\textss{and I made some comments here, but the text maybe too long to feed a line}
and cats do not only write catcode.
Ducks\textss{ducks} pft and more text and more text and more text and more text
and more text and more text and more text.
\end{document}

\newcommand{\measureremainder}[1]{...sandwiched between\makeatletterand\makeatotherto your document. – Feb 23 '20 at 03:50! Undefined control sequence. \measureremainder ...a}{east}} \xdef #1{\the \pgf @x} \end {tikzpicture} l.144 ...t the text maybe too long to feed a line}– coanor Feb 23 '20 at 03:53\makeatletterand\makeatothercommands. Can you post a minimal example that yields the error (if you really get an error after copying the code as is)? – Feb 23 '20 at 03:57makeatletter. -__- – coanor Feb 23 '20 at 04:11soulpackage for underline seems not perfect, recommend usingulem's\uline: https://tex.stackexchange.com/questions/9550/why-does-underlined-text-not-get-wrapped-once-it-hits-the-end-of-a-line – coanor Feb 23 '20 at 04:23