Plotted coolant temperature over time:
It started 12 degrees above ambient because I needed to move the car first. Looks like after 2 hours it's severely diminishing returns, and between an hour and a half to two hours of heat before leaving seems to be the sweet spot.
It also seems that even turning it on for 20-30 minutes is probably worthwhile.