I have hard time understanding what you mean by delays, curves etc. And what you are trying to do.
If all you want is to change the motor speed from one set point to another smoothly during X seconds, all you need to do is to increase/decrease the setpoint linearly for X seconds. Don't change the PID parameters.
Example:
Your motor is spinning 4000 RPM.
You want to smoothly ramp the speed to 8000 RPM in 2 seconds.
Solution.
Increase the set point by 20 every 10 milliseconds until the setpoint equals 8000.