One client per variant, with idle timeout