user20925: *Sdk version: 2.2.2-dev(5ab15d1)
*Core Version: 2_6_1
This is the error returned:
Exception 3: LoadStoreError: Processor internal physical address or data error during load or store PC: 0x4000bf64 EXCVADDR: 0x4024e963
Decoding stack results 
0x4020175d: HTML1(String) at C:\Users\b.yuzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266/WString.h line 128 
0x40238c26: umm_info(void*, int) at C:\Users\b.yuzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\umm_malloc/umm_info.c line 164 
0x40100278: millis() at C:\Users\b.yuzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\core_esp8266_wiring.cpp line 188 
0x40238c26: umm_info(void*, int) at C:\Users\b.yuzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\umm_malloc/umm_info.c line 164 
0x4020af74: String::copy(char const*, unsigned int) at C:\Users\b.yuzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\WString.cpp line 214 
0x40201a3c: 

Code: 
static const char HTML1[] PROGMEM = R"=====(
<!DOCTYPE HTML><html><head>
<meta charset='utf-8' name='viewport' content='width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0'>
)=====";

static const char HTML2[] PROGMEM = R"=====(
<button type='button' onclick='sendData(2)'>Test2</button>
)=====";

String html_return = HTML1;
html_return += "<button type='button' onclick='sendData(1)'>Test</button>";
Serial.println("Before Second Const Char");
html_return += HTML2; //<< ESP stops working here


user30175: See Guide to PROGMEM on ESP8266 and Arduino IDE. 
Since you put your char array into PROGMEM, special functions must be used to load it from flash into RAM; so to load it into a String object, the FlashHelper class must be used. You can simply use the macro FPSTR(progmem_ptr). 
#include <Arduino.h>

void setup() {
    Serial.begin(115200);
    Serial.println("\nStart firmware");

    static const char HTML1[] PROGMEM = R"=====(
    <!DOCTYPE HTML><html><head>
    <meta charset='utf-8' name='viewport' content='width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0'>
    )=====";

    static const char HTML2[] PROGMEM = R"=====(
    <button type='button' onclick='sendData(2)'>Test2</button>
    )=====";

    String html_return = HTML1;
    html_return += "<button type='button' onclick='sendData(1)'>Test</button>";
    Serial.println("Before Second Const Char");
    //html_return += HTML2; //crashes
    html_return += FPSTR(HTML2); //works
    Serial.println("Result");
    Serial.println(html_return);
}

void loop() {

}

Outputs
Start firmware
Before Second Const Char
Result

        <!DOCTYPE HTML><html><head>
        <meta charset='utf-8' name='viewport' content='width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0'>
        <button type='button' onclick='sendData(1)'>Test</button>
        <button type='button' onclick='sendData(2)'>Test2</button>


20925: <p>*Sdk version: 2.2.2-dev(5ab15d1)
*Core Version: 2_6_1</p>

<p>This is the error returned:</p>

<pre><code>Exception 3: LoadStoreError: Processor internal physical address or data error during load or store PC: 0x4000bf64 EXCVADDR: 0x4024e963
Decoding stack results 
0x4020175d: HTML1(String) at C:\Users\b.yuzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266/WString.h line 128 
0x40238c26: umm_info(void*, int) at C:\Users\b.yuzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\umm_malloc/umm_info.c line 164 
0x40100278: millis() at C:\Users\b.yuzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\core_esp8266_wiring.cpp line 188 
0x40238c26: umm_info(void*, int) at C:\Users\b.yuzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\umm_malloc/umm_info.c line 164 
0x4020af74: String::copy(char const*, unsigned int) at C:\Users\b.yuzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\WString.cpp line 214 
0x40201a3c: 
</code></pre>

<p>Code: </p>

<pre><code>static const char HTML1[] PROGMEM = R"=====(
&lt;!DOCTYPE HTML&gt;&lt;html&gt;&lt;head&gt;
&lt;meta charset='utf-8' name='viewport' content='width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0'&gt;
)=====";

static const char HTML2[] PROGMEM = R"=====(
&lt;button type='button' onclick='sendData(2)'&gt;Test2&lt;/button&gt;
)=====";

String html_return = HTML1;
html_return += "&lt;button type='button' onclick='sendData(1)'&gt;Test&lt;/button&gt;";
Serial.println("Before Second Const Char");
html_return += HTML2; //&lt;&lt; ESP stops working here
</code></pre>
 30175: <p>See <a href="https://arduino-esp8266.readthedocs.io/en/latest/PROGMEM.html#functions-to-read-back-from-progmem" rel="nofollow noreferrer">Guide to PROGMEM on ESP8266 and Arduino IDE</a>. </p>

<p>Since you put your char array into <code>PROGMEM</code>, special functions must be used to load it from flash into RAM; so to load it into a <code>String</code> object, the <code>FlashHelper</code> class must be used. You can simply use the macro <code>FPSTR(progmem_ptr)</code>. </p>

<pre><code>#include &lt;Arduino.h&gt;

void setup() {
    Serial.begin(115200);
    Serial.println("\nStart firmware");

    static const char HTML1[] PROGMEM = R"=====(
    &lt;!DOCTYPE HTML&gt;&lt;html&gt;&lt;head&gt;
    &lt;meta charset='utf-8' name='viewport' content='width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0'&gt;
    )=====";

    static const char HTML2[] PROGMEM = R"=====(
    &lt;button type='button' onclick='sendData(2)'&gt;Test2&lt;/button&gt;
    )=====";

    String html_return = HTML1;
    html_return += "&lt;button type='button' onclick='sendData(1)'&gt;Test&lt;/button&gt;";
    Serial.println("Before Second Const Char");
    //html_return += HTML2; //crashes
    html_return += FPSTR(HTML2); //works
    Serial.println("Result");
    Serial.println(html_return);
}

void loop() {

}
</code></pre>

<p>Outputs</p>

<pre><code>Start firmware
Before Second Const Char
Result

        &lt;!DOCTYPE HTML&gt;&lt;html&gt;&lt;head&gt;
        &lt;meta charset='utf-8' name='viewport' content='width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0'&gt;
        &lt;button type='button' onclick='sendData(1)'&gt;Test&lt;/button&gt;
        &lt;button type='button' onclick='sendData(2)'&gt;Test2&lt;/button&gt;
</code></pre>
