Increase room temperature as fast as possible, but without overheating

wildbill:
Better yet, since you don't want to spend time testing, write something that lets the arduino figure it out itself. Have an array of structs that it populates with initial temperatures, time it ran the heater, stop temperature and final temperature. Let it adjust those gradually until it's built its own model of what it takes to heat your space and keep it warm.

+1
you should be able to see a rise.
at, say, 5 deg prior to your final, shut off the heat
watch for the overshoot, ideally it will be 2-3 degrees.
if you have two conditions,
fast heat = 25%
slow heat = 5%
if your starting temp is more than 10 degrees delta, then shut off with when you are within 25% of that delta T
eg:
start at 12, goal is 25 = Delta T = 13 and 20% of 13 = 2.6
once at 22.4 degrees, shut off, data log the overshoot over 22.4

it may be just that simple.
get close, then let your 'maintain temperature' control take over.