I am not sure if you have seen the threads talking about using a cubic for this purpose.
Here is my reply on another thread explaining it
Your method seems to work and give reasonable results, it does seem however significantly more complicated and require different math for positive vs negative controller values.
Graphically the difference seems pretty insignificant.
