Here's how I'd approach this with scripting. First I define reference shadow and reference size, then if image width isn't the same as reference size, I linearly transform shadow values based on ratio of current image width and reference width.
Result (first image is reference, 1000x1000, second is 2000x2000, third is 660x600, fourth is 200x200):

Because Photoshop doesn't support decimals in the shadow effect, the results between won't be exactly the same, but close enough.
So you can add this script as one of the action steps:
function main()
{
var myShadow = {
color:
{
r: 0,
g: 0,
b: 0,
},
opacity: 80,
angle: 120,
distance: 10,
spread: 0,
size: 20,
},
referenceSize = 1000,
doc = activeDocument,
w = doc.width.as("px"),
h = doc.height.as("px");
if (w != referenceSize)
{
var ratio = w/referenceSize;
myShadow.distance = linear(ratio,0,1,0,myShadow.distance);
myShadow.spread = linear(ratio,0,1,0,myShadow.spread);
myShadow.size = linear(ratio,0,1,0,myShadow.size);
}
dropShadow(myShadow);
/////////////////////////////////////////////////////////////////////////////////////
function dropShadow(shadow)
{
var desc10 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty(cTID('Prpr'), cTID('Lefx'));
ref1.putEnumerated(cTID('Lyr '), cTID('Ordn'), cTID('Trgt'));
desc10.putReference(cTID('null'), ref1);
var desc11 = new ActionDescriptor();
desc11.putUnitDouble(cTID('Scl '), cTID('#Prc'), 100);
var desc12 = new ActionDescriptor();
desc12.putBoolean(cTID('enab'), true);
desc12.putBoolean(sTID('present'), true);
desc12.putBoolean(sTID('showInDialog'), true);
desc12.putEnumerated(cTID('Md '), cTID('BlnM'), cTID('Nrml'));
var desc13 = new ActionDescriptor();
desc13.putDouble(cTID('Rd '), shadow.color.r);
desc13.putDouble(cTID('Grn '), shadow.color.g);
desc13.putDouble(cTID('Bl '), shadow.color.b);
desc12.putObject(cTID('Clr '), cTID('RGBC'), desc13);
desc12.putUnitDouble(cTID('Opct'), cTID('#Prc'), shadow.opacity);
desc12.putBoolean(cTID('uglg'), false);
desc12.putUnitDouble(cTID('lagl'), cTID('#Ang'), shadow.angle);
desc12.putUnitDouble(cTID('Dstn'), cTID('#Pxl'), shadow.distance);
desc12.putUnitDouble(cTID('Ckmt'), cTID('#Pxl'), shadow.spread);
desc12.putUnitDouble(cTID('blur'), cTID('#Pxl'), shadow.size);
desc12.putUnitDouble(cTID('Nose'), cTID('#Prc'), 0.000000);
desc12.putBoolean(cTID('AntA'), false);
var desc14 = new ActionDescriptor();
desc14.putString(cTID('Nm '), "Linear");
desc12.putObject(cTID('TrnS'), cTID('ShpC'), desc14);
desc12.putBoolean(sTID('layerConceals'), true);
desc11.putObject(cTID('DrSh'), cTID('DrSh'), desc12);
desc10.putObject(cTID('T '), cTID('Lefx'), desc11);
executeAction(cTID('setd'), desc10, DialogModes.NO);
};
function linear(X, A, B, C, D, _cut)
{
var _cut = _cut !== undefined ? _cut : false;
var Y = (X - A) / (B - A) * (D - C) + C
if (_cut)
{
Y > D && Y = D;
Y < C && Y = C;
};
return Y
};
function cTID(s)
{
return app.charIDToTypeID(s);
};
function sTID(s)
{
return app.stringIDToTypeID(s);
};
}
app.activeDocument.suspendHistory("addShadow", "main()");