Er yes that sounds right to me I think, the speed is steps per second, and is zero while the motor is stopped. And the acceleration is a statement of how rapidly that speed is changing.
I think your description is good, except that the calculation is based on milli or microseconds rather than seconds (although the value uses full seconds as the time base because that makes sense to us). Essentially the core of the movement engine is a loop in which current speed, max speed, acceleration and steps to go is constantly evaluated. The loop itself runs at a fairly high frequency (at least a few kHz - thousand times a second), and each run through decides to step or not step the motor based whether a step is due to make it move at a certain speed.
The acceleration calculator is constantly changing that particular speed over the course of any given second.
For a fixed loop frequency of 4000 Hz, running at 2000Hz will mean every alternate loop does not result in a step. You can see where the hard limit creeps in here - once the motor is running at 4000Hz, every single run through the loop results in a step, and there's nowhere to put the extra steps to make it go faster.
But, I think that means that with an acceleration of 3000 and a max speed of 3000 it would take only one second to reach top speed. That intuitively sounds too fast - in real life, accelerations have always seemed more protracted, and top speeds rare, but perhaps I just run with lower numbers in reality than I think I do!