No idea, but take a look into the log. Also what happens if you run the heat command manually that is in your gcode?
Your description does not match pictures. Last picture shows ETE but temperature is reached, which is what you say does not work.
An other thing is the M109 will wait inside firmware until firmware thinks the target temp. is reached. If that does not happen, print will not continue. Can happen if you say temp. must be within 0.5°C for 10 seconds or something like this you can not reach due to swinging temperatures.