IF statement

while (millis() < time_now + period);

If you are going to do this then you might just as well use delay() as your current code is just as blocking. I assume that the period of 1 second is only for testing purposes

Personally I would turn the program into a state machine, which sounds scary but isn't. The program will be in one of several states at any time, such as

TEMP_IN_RANGE
FAN_ON_COOLING
FAN_ON_MANUAL_OVERRIDE

In each state only certain code needs to be executed and there will also be code common to some/all of them that is executed unconditionally. You can control whether the code for the current state is executed using a series of if/else but personally I like to use switch/case based on the current state. This nicely separates the code into blocks and by defining constants the states can be given meaningful names

Let me know if you want to know more about the techniques suggested