Memory override when using Adafruit_NeoPixel library

I have met many random issues while controlling the LED strip based on movements, but now I am diving deeper into this. I am stuck with the Adafruit_NeoPixel library as the FastLed did not work on Arudino Nano 33 BLE (the last time I tried a few weeks ago).

So my issue is that seemingly independent operations - creating Strings is the most noticeable - affect the memory area that should be controlling the LEDs. If I create a new String, the colors are affected on the led.

Let me show you a minimal example:

#include <Adafruit_NeoPixel.h>

#define LED_PIN A7
#define LED_COUNT 60

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  Serial.begin(9600);
  Serial.println("Started");

  // Clear the leds
  strip.begin();
  strip.fill();  
  strip.show();

}

void updateLedStripColors(Adafruit_NeoPixel strip, float floatParameter) {
  strip.fill(Adafruit_NeoPixel::Color(255, 0, 0));
  strip.show();

  // Changing the string value changes the LED colors
  Serial.println("randomString" + String(floatParameter) );
  strip.show();
}

void loop() {

  volatile float z = 10;

  // This call does not work as expected, the LED strip is not a single color at the end
  updateLedStripColors(strip, z);

// THIS VERSION WORKS, although it should be the same as the above function call
/* 
  strip.fill(Adafruit_NeoPixel::Color(255, 0, 0));
  strip.show();

  Serial.println("randomString" + String(z) );
  strip.show();
*/  
  delay(1);
}

Notice that updateLedStripColors() calls strip.show() twice. This is just an example, the idea is that between updates to the LED library I make operations affecting memory state, e.g.: creating new strings, might affect the pixels - although I have not called any Adafruit_NeoPixel APIs, the LEDs are not all red at the end.

This current String in the code above affects the led as shown on the attached picture. Longer strings or more operations will affect the entire strip. If I remove the function call and directly copy paste the entire content of updateLedStripColors() into the loop function, it works. If I do not have a parameter, but the string seems to resolved compile time and stored on the Stack, it seems to work.
But my code cannot keep everything inside the loop() function, the real version is much more complex.

Does anyone know where I mess this up? How is the String operation affecting the LED state? Can I attach a debugger with break points at changes to the memory area controlling the LEDs?