After uncovering a viable solution, I felt compelled to share it here.
The inspiration came from Shashi Lo's suggestion to utilize flexbox, but I had to adapt the approach to avoid any unforeseen consequences.
Here is the outcome:
https://jsfiddle.net/cdjc6fk5/
HTML
<ol>
<li>
<button type="button">Ihr woll<span style="letter-spacing: 1.5px">t</span>, dass ich <span style="letter-spacing: 1.3px">f</span>ür Eu<span style="letter-spacing: 1.3px">r</span>e schlec<span style="letter-spacing: 0.9px">h</span><span style="letter-spacing: 1px">t</span>en E<span style="letter-spacing: 0.9px">n</span><span style="letter-spacing: 1.5px">t</span>scheidungen b<span style="letter-spacing: 1.3px">e</span><span style="letter-spacing: 1.5px">z</span>ahle?</button>
</li>
<p>
Wenn Ihr das so sag<span style="letter-spacing: 1.5px">t</span>, klin<span style="letter-spacing: 1px">g</span>t das i<span style="letter-spacing: 1.5px">r</span>gen<span style="letter-spacing: 1px">d</span><span style="letter-spacing: 1.2px">w</span>ie <span style="letter-spacing: 1.5px">v</span>iel schlimmer. <br>Se<span style="letter-spacing: 0.9px">h</span>t es als Da<span style="letter-spacing: 1.5px">r</span>lehen a<span style="letter-spacing: 1.5px">n</span>. Ihr <span style="letter-spacing: 1.3px">w</span>i<span style="letter-spacing: 0.9px">s</span><span style="letter-spacing: 1.3px">s</span><span style="letter-spacing: 1.5px">t</span>, dass ich es <span style="letter-spacing: 1.2px">z</span>u<span style="letter-spacing: 1.5px">r</span>ü<span style="letter-spacing: 1px">c</span><span style="letter-spacing: 2.3px">k</span><span style="letter-spacing: 1.5px">z</span>ahlen kan<span style="letter-spacing: 1.5px">n</span>. Ich habe ein eh<span style="letter-spacing: 1.5px">r</span>liches Gesich<span style="letter-spacing: 2px">t</span>.
</p>
</ol>
CSS
ol {
margin: 4px 0 0 24px;
padding: 0;
background-color: limegreen;
list-style-type: none;
counter-reset: item;
}
ol li {
background-color: darkcyan;
margin: 0;
padding: 0;
display: flex;
flex-wrap: nowrap;
}
ol li::before {
width: 16px;
background-color: darkred;
counter-increment: item;
content: counter(item) "";
font-family: Segoe UI Semibold;
color: #C5BF9E;
}
button {
width: 100%;
margin: 0;
padding: 0;
background-color: black;
border: none;
outline: none;
vertical-align: top;
text-align: justify;
font-family: Segoe UI;
font-size: 1em;
color: #C5BF9E;
cursor: pointer;
}
button:hover { color: #EECA2A; }
ol p {
width: calc(100% - 16px);
margin: 0;
padding-left: 16px;
background-color: red;
font-family: Segoe UI;
font-size: 1em;
}