The reason why the speed is increasing all the time is that the +z increase (could be in your function or action) is called again and again, making your speed increase ^2 all the time.
personally I'd try change the code to:
if(key_w == 1 && height <= 1531.00){
up();
}
function up() {
while(height <= 1531) {
height += 0.002;
wait(1);
}
}
and move that my.z out of the while loop, because it does put my to 256 on each loop cycle.
Hopefully this helps
-Walori
EDIT: Replacing a code, sorry. Just realized you wanted the enitity to move contantly (learn to read <-) which mine did not. with this however it should work, just move the height out from the loop in the action and it should do the trick
-Walori