I don't understand why we need topics rate limiting here? If you want to run mainloop at lower rate just use sleep and get rate that you need. Position control is maybe not so latency critical as attitude and should be ok. Another solution is to synchronize to position updates without any rate limiting for minimum latency. Don't need to limit other topics at all (attitude, manual etc.), because if synchronize to only one topic others will be polled with the same interval.

I haven't reviewed this fully, but I'm working on big upgrade of mp_pos_control now (https://github.com/PX4/Firmware/pull/753) and it will have a lot of conflicts with this branch. Please, leave it as is now, I will rewrite it using blocks later myself.