It's interesting. There are minimum time for starting compressor, heater, and etc. You can find those constants in TempControl.h. However, none of them has such a big value. The maximum one is COOL_PEAK_DETECT_TIME, which is 1800 seconds.
The temperature usually goes lower after the compressor stops. That's what the "wait for peak" for. The algorithm of BrewPi will wait for and record the 'peak'(lowest temperature when cooling) to get a better estimation in the following cycles.
I am no expert of BrewPi itself. The code is from Elco, and the porting to ESP8266 is done by Thorrax. However, I might have found a bug or typo in the Brewpi Code. Let me do some research before trying to alter the code which I am not really familiar with.
---------TL;DR-----------------------------------
The code to print "Waiting for .." is at
LcdDisplay:
rintState(void);
The only way to print "Waiting for 18hxxmxx" is when the state is "WAITING_FOR_PEAK_DETECT", which is the only case "Waiting for" can happen. The 'time' value is supposed to be 'UINT16_MAX'(65535) and supposed not to be printed. That is exactly what it does on Arduino. However, the code to decide if "time" should be printed compares 'time' to "UINT_MAX". 'Int' on Arduino is 16bit, but it is 32 bits on ESP8266( I guess because it has a 32bit processor). Therefore, the 'time' value of 65535 is printed and overwrites the 'peak'. Try to do some math, you will get the numbers from 65535.
-------End of TL;DR-----------------------------------
Update:
The version from Thorrax that I am using is v0.2.4. In 0.2.10, it has been fixed. Therefore, I already fixed it and push to Github. It doesn't really affect anything but display, so don't worry about it.