Using the encoder for commutation is a really interesting solution. I like it a lot.
It occurs to me that since you are using a mikroelectronika compiler it would be a fairly easy process to port this to ARM (mikropascal for ARM). STM32 development has become dirt cheap and in some cases even less expensive than Arduino. Taking a wild guess I'll bet you could at least double or triple your maximum PID frequency, probably more.

Sometime in the next few weeks I plan to build at least one controller of your design. If that works out like I think it will I'll probably be building around six more.
Thanks for sharing your excellent work.

Marvin