In case anyone else wants a solution, I managed a shitty workaround to halfway automate the process and its only a mild pain in the ass. Basically, you want to remove the two short lines below (added by cura, and not in your starting code), and keep the two long lines (added by you in your starting gcode)
remove - "M190 S60"
remove - "M109 S215"
keep - "M109 S215 ; if extruder is still not heated, wait for extruder to reach 215 before continuing"
keep - "M190 S60 ; if bed is still not heated, wait for bed to reach 60 before continuing"
This batch file will remove all instances of "M190 S60" and "M109 S215", including the ones you want to keep!
This will leave the two short lines blank, and leave the long lines as such;
" ; if extruder is still not heated, wait for extruder to reach 215 before continuing"
" ; if bed is still not heated, wait for bed to reach 60 before continuing"
The batch file will then find the remains of the lines you want to keep and replace them with what you had originally.
You will be left with the two bad lines gone, and the two lines you want still there. This will fix this issue. All you have to do is make the batch file, and drag your gcode files onto it before uploading to octoprint or sd card or however you like to print, every time you slice.
This is a pain in the ass, and your file name cant any any spaces etc, but still faster than editing each gcode file, or manually heating up your hotend every time you start a print. I really hope someone can give me a simpler solution, or this apparent bug in cura can be fixed soon. I dont like this solution much but its all I could come up with.
Hope this helps anyone in my same situation.
see below, contents of batch file, gcodefix.bat or whatever you want to call it
@echo removing all M190 commands
powershell -Command "(gc %1) -replace 'M190 S60', '' | Out-File -encoding ASCII %1"
@echo removing all M109 commands
powershell -Command "(gc %1) -replace 'M109 S215', '' | Out-File -encoding ASCII %1"
@echo re-adding M190 command
powershell -Command "(gc %1) -replace ' ; if bed is still not heated, wait for bed to reach 60 before continuing', 'M190 S60 ; if bed is still not heated, wait for bed to reach 60 before continuing' | Out-File -encoding ASCII %1"
@echo re-adding M109 command
powershell -Command "(gc %1) -replace ' ; if extruder is still not heated, wait for extruder to reach 215 before continuing', 'M109 S215 ; if extruder is still not heated, wait for extruder to reach 215 before continuing' | Out-File -encoding ASCII %1"