I got the principle, its the implementation that bothers me.

Especially if you want to run it in reverse and get back to where you started (ie; balanced accel/decel).
To get linear accel with a per-mS calc (as I used) the range of the value subtracted from period is quite large. Here are some values I generated for my linear accel table at 0.3 G over 126 mS (126 samples);
<SNIP>
The values are in 0.1uS resolution, so the very last period is 25.5uS period to generate each step pulse. See the last mS of the ramp, over that mS (39 step pulses) the exponential is so gentle the period has only changed less than 1% (or 0.2uS) change in period over 39 steps.
Your case is much worse than this, as you are not ramping over time but per step, so you factor the exponential twice it's actually the square of the exponential! For your system your would be subtracting 0.02% from the period each step by the end of the ramp, which is -0.0025uS!
If you get the time, whip up C code or an excel spreadsheet of your double exponential generating all the steps from period 1324.5 uS to period 25.6 uS and have a look at what the period value will actually be doing, the last stage will be nasty and you will need some high res value for the subtractor to get the top of the ramp ok and especially if you want to be able to reverse it.
See my figures above, at the first step of the ramp you will be subtracting 445.1uS per step, at the end of the 126mS ramp you will be subtracting 0.0025uS per step.
