This super-simple patch should pretty much fix those issues:
Index: shipfx.cpp
===================================================================
--- shipfx.cpp	(revision 7929)
+++ shipfx.cpp	(working copy)
@@ -4222,7 +4222,7 @@
 
 	if(direction == WD_WARP_IN)
 	{
-		shipp->flags |= SF_ARRIVING_STAGE_2;
+		shipp->flags |= SF_ARRIVING_STAGE_1;
 		objp->phys_info.flags |= PF_WARP_IN;
 		objp->phys_info.vel.xyz.z = (scale_factor / sip->warpin_time)*1000.0f;
 		objp->flags &= ~OF_PHYSICS;
@@ -4258,6 +4258,7 @@
 			vm_vec_scale( &vel, initial_velocity );
 			objp->phys_info.vel = vel;
 			objp->phys_info.desired_vel = vel;
+			shipp->flags |= SF_ARRIVING_STAGE_2;
 		}
 		objp->flags |= OF_PHYSICS;
 		this->warpEnd();
@@ -4287,4 +4288,4 @@
 		vm_vec_scale_add(&objp->pos, &pos_final, &objp->orient.vec.fvec, scale);
 	}
 	return 1;
-}
+}
\ No newline at end of file