Is ~40% error something we should really expect?
That's the purpose of your test. No?
Here's what I would suggest you do to confirm whether or not the warmup time affects the altitude:
1) Let your Phantom sit indoors for 20 minutes. Take it outside, turn it on, start the motors as quickly as possible, and fly to the top of the palm tree. Land and turn off your Phantom.
2) Take your Phantom back indoors and let it sit for 20 minutes.
3) Take your Phantom outside, turn it on, wait
3 minutes, start the motors, and fly to the top of the palm tree. Land and turn off your Phantom.
4) Take your Phantom back indoors and let it sit for 20 minutes.
5) Take your Phantom outside, turn it on, wait
5 minutes, start the motors, and fly to the top of the palm tree. Land and turn off your Phantom.
6) Take your Phantom back indoors and let it sit for 20 minutes.
7) Take your Phantom outside, turn it on, wait
10 minutes, start the motors, and fly to the top of the palm tree. Land and turn off your Phantom.
8) Compare the altitudes recorded in all flight logs.