Make the oled display still working while in a WHILE-LOOP

You seem to still hanging on to the idea that your code can keep most of his structure
and just to a small modification to make the display updating the values.
This seems to block your thinking. Just like delay() blocks code-execution.

The function delay() should have been named

freeze_micrcontroller_completely_STOP_executing_all_code_until_freezingtime_is_over()

The way to do the opposite of "freezing the display" which is
the way of keeping the display active and responsive is:

avoid each and every while-loop
by letting do void loop() all the looping.

avoid each and every delay() by

replacing

all the delay()'s with non-blocking timing based on function millis()

From this you can see your code needs re-structuring
for making the code non-blocking = responsive

Your thinking about code-execution must change from linear top to down
1.
2.
3.
...
to a high-frequent looping with timely conditional execution of parts of your code

Here is a tutorial that is intended to explain this concept

From your description it is still not clear to me how you switch on / off the peltier-element.
Can you please draw a timing-chart where the pattern how you want to switch on / off the peltier-element is shown.

If there are additional conditions describe these conditions too.

best regards Stefan