Implement a speed controller for a cascaded position controller
1st you are missing a D control to differentiate position to get velocity and integral of current.  Then you are missing acceleration feedback from current and the 2nd derivative of position. 

Pi feedback adds delay and delay adds instability.  Unfortunately you don't seem to grasp the basics of Loop gain transfer functions, PID feedback, Bode Plots, Root Locus methods and Barkhausen stability criteria.  and 1st order feedback needed for stable control with 2nd order feedback to reduce jitter. 3rd order feedback with 2 integrators results in positive feedback.

I won't detail your solution , rather just suggest topics for reading above for learning how to solve the problems with many approaches.

A 14 bit encoder sounds like it has enough resolution, but how does that translate to your Position Error tolerance, overshoot SPEC and input profile for Position seek, velocity ramp and acceleration limits with F=ma and force of motor and current limits.

Force will not be constant as Torque declines with higher speed, so there are many variables to define, quantize and compute.  Once these "specs" are all defined the problem becomes manageable by engineered calculations.

The minimal solution is to have two feedback loops for position error and velocity error, then have  2 control modes, velocity control ramps and position control ramps when velocity is below a certain threshold.  This is 1st order or Proportional (P) feedback and guaranteed stable under limited conditions such as no backlash, no delays, no moments of inertia.

The optimal solution will have 3 sources of feedback, a,v,p to compare with a target profile to get an error signal to control each value of acceleration, velocity and position error within your defined specs.  Normally acceleration feedback is derived motor current above some no load threshold.

HDD's have high resolution position , velocity and acceleration feedback to obtain the fastest seek with the smallest time and lowest position error using thee methods.