You are already there.
The smallest distance between two floats your current generator produces is 1/(2^32).
So, your generator is efectively producing [0,1-1/(2^32)].
1/(2^32) is greater than FLT_MIN.
Thus if you add FLT_MIN to your generator,
float open_open_flt = FLT_MIN + closed_open_flt;
you'll get [FLT_MIN,1-(1/(2^32))+FLT_MIN], which works as a (0,1) generator.