I'll do one of your method calls for you... you need to tell the Action what to expect, just like the method wrapper:
public static Action AdaptToRootAction<T1, T2>(Action<T1, T2> action, T1 arg1, T2 arg2)
{
T1 param1 = arg1;
T2 param2 = arg2;
return delegate
{
action(param1, param2);
};
}