Waiting a certain number of seconds before starting the hot end works, but is a bit too naive if the bed temp changes a lot due to different materials (hence why my plugin starts it a specified number of degrees before whatever you set the bed temp to). You have to change the number of seconds every time you have a large target bed temp switch.
The second method of heating the hot end to a lower 'safe' temp is a bit better, but I still wanted the most optimal solution possible..