string to char const *variable

I compiled your code to 3606 bytes using the String object. Getting rid of those Strings and using a C string instead:

byte wibble[2] = {15, 10}; // FA hex. In reality these are populated from the wifi MAC.

void setup() {
  Serial.begin(115200);
  delay(1000);
  Serial.println();
  method3();
}

void method3() { // successfully creates "node_fa"
  char wifi_pass_start[10] = "node_";
  char c[5];
  itoa(wibble[0], c, HEX);
  strcat(wifi_pass_start, c);
  itoa(wibble[1], c, HEX);
  strcat(wifi_pass_start, c);

  Serial.print("Method3:  "); Serial.println(wifi_pass_start);
}

void loop() {
  // put your main code here, to run repeatedly:

}

drops the code size to 2164 bytes. While the String class has a lot of power, many programs don't use all of that power, resulting in code size that's bigger than it needs to be.