Load balancing leads between sales representatives

I am looking to assign my leads to my sales representatives. Each representative will have a pre-defined number of leads assigned to them. As soon as the leads are processed further, more leads are assigned to the same user. The idea is to keep the total no of leads assigned to any representative constant.

Furthermore, if the lead is not processed within a specified time, the lead should get reassigned to another representative.