To avoid fast riders riding away in the distance why not define a ‘safe zone’ around the group leader. If anyone is too quick, there’s a high chance they catch a flat tyre (have to stop until at the back of the group). Not sure how difficult that is.
If someone wants to ride away from the group ride, at some point they’ve decided that ride wasn’t really for them. So, if riders choose to stay with the group leader, there is your group ride. Ignore the rest, don’t try and control them. They are riding their own ride.