I would recommend using an external service via API or WSProxy instead of the Core functions to get around this if it is a limitation. Zuzanna has written a great article about this here.
Here is a great example of the REST API endpoint and payload to send including the subscriberkey:
POST /messaging/v1/messageDefinitionSends/key:{{messagekey}}/send
Host: {{subDomain}}.rest.marketingcloudapis.com
Content-Type: application/json
Authorization: Bearer {{authToken}}
{
"From": {
"Address": "me@salesforce.com",
"Name": "Learning Account"
},
"To": {
"Address": "help@example.com",
"SubscriberKey": "12356",
"ContactAttributes": {
"SubscriberAttributes": {
"First_Name": "Aaron",
"Cart_Total": "27.84",
"Order_Number": 123456,
"Purchase_Date": "2019-07-11T18:32:15Z",
"Sub_Total": "30.01",
"Tax": "2.17"
}
}
}
}
This is a good resource for information on SFMC REST API calls outside official docs.
Below is a sample WSProxy call lifted from that article by Zuzanna:
<script runat="server">
Platform.Load("Core", "1")
var prox = new Script.Util.WSProxy();
var tsExKey = 'External Key'; //pass Triggered Send External Key
var EmailAddress = 'example@example.com'; //pass Email Address
var SubscriberKey = 'example@example.com'; //pass Subscriber Key
var tsDef = {
TriggeredSendDefinition: {
CustomerKey: tsExKey
},
Subscribers: [{
EmailAddress: EmailAddress,
SubscriberKey: SubscriberKey
}]
};
var res = prox.createItem('TriggeredSend', tsDef);
Write(Stringify(res));
</script>
BUT I do believe you can add in subscriberkey to the TriggeredSend.Send core function. Here is a great article written by Ivan about it.
Here is a snippet from the article showing how it is done: (it is assuming that the vars are defined in AMPscript. You can adjust this to instead call your SSJS vars if you want.)
<script runat="server">
Platform.Load("core","1.1");
var data = {
attributes : {
FirstName: Platform.Variable.GetValue("@FirstName"),
Language: Platform.Variable.GetValue("@Language")
},
subscriber : {
EmailAddress: Platform.Variable.GetValue("@EmailAddress"),
SubscriberKey: Platform.Variable.GetValue("@SubscriberKey")
}
}
var TSD = TriggeredSend.Init(Platform.Variable.GetValue("@TriggeredSendExternalKey"));
var Status = TSD.Send(data.subscriber,data.attributes);
</script>