The culprit is the line:
this._div.innerHTML += "some info";
It destroys (and then recreates) all child elements of this._div
so the event listener associated with the original button
is lost.
If you replace this line with say:
let contentDiv = L.DomUtil.create("div", "info-content", this._div);
contentDiv.innerHTML = "some info";
the button will work as intended.