Зачем вы заставляете клиентский код делать за вас всю работу?
Зачем наружу торчит ArgsConverter conv(); у коллбэка?
Попробуйте переписать свой execute вот в это:
public Object execute(Object[] args) {
ArgsConverter<?> convImpl = conv();
return convImpl.conv(args);
}