Here is what I have settled on. You need to create two variables. One is for your destination. It shall be %HOME and it should be populated using your destination address without punctuation or abbreviation except for state. The second is for the recipient of your message. It shall be %HOMENUM and it should be a 7 digit phone number without dashes or punctuation. Use your own number to test it a few times before you barrage your mate with messages.
I tested it this morning and it sent a message estimating a 39 minute commute that ended up being 43 minutes. Not bad considering I went through Atlanta GA during rush hour. Pretty accurate for a 30 mile drive in wildly unpredictable traffic. An accuracy like that is good enough!
I am having Tasker/Secure settings enable GPS at the start of the task to ensure location accuracy. GPS is turned off at the end if I am not using it for any other app.
<TaskerData sr="" dvi="1" tv="4.7u3m">
<Task sr="task247">
<cdate>1345254133188</cdate>
<edate>1437488739214</edate>
<id>247</id>
<nme>Headed Home</nme>
<pri>100</pri>
<Action sr="act0" ve="7">
<code>11820</code>
<Bundle sr="arg0">
<Vals sr="val">
<com.intangibleobject.securesettings.plugin.extra.BLURB>GPS Enabled</com.intangibleobject.securesettings.plugin.extra.BLURB>
<com.intangibleobject.securesettings.plugin.extra.BLURB-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.BLURB-type>
<com.intangibleobject.securesettings.plugin.extra.ENABLED>true</com.intangibleobject.securesettings.plugin.extra.ENABLED>
<com.intangibleobject.securesettings.plugin.extra.ENABLED-type>java.lang.Boolean</com.intangibleobject.securesettings.plugin.extra.ENABLED-type>
<com.intangibleobject.securesettings.plugin.extra.SETTING>gps</com.intangibleobject.securesettings.plugin.extra.SETTING>
<com.intangibleobject.securesettings.plugin.extra.SETTING-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.SETTING-type>
<com.twofortyfouram.locale.intent.extra.BLURB>GPS Enabled</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.intangibleobject.securesettings.plugin</Str>
<Str sr="arg2" ve="3">Secure Settings</Str>
<Int sr="arg3" val="0"/>
</Action>
<Action sr="act1" ve="7">
<code>902</code>
<Int sr="arg0" val="0"/>
<Int sr="arg1" val="100"/>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
</Action>
<Action sr="act2" ve="7">
<code>118</code>
<Str sr="arg0" ve="3">
maps.googleapis.com</Str>
<Str sr="arg1" ve="3">maps/api/directions/json</Str>
<Str sr="arg2" ve="3">origin=%LOC
destination=%HOME
sensor=false</Str>
<Str sr="arg3" ve="3"/>
<Str sr="arg4" ve="3"/>
<Int sr="arg5" val="10"/>
<Str sr="arg6" ve="3">text/plain</Str>
<Str sr="arg7" ve="3"/>
<Int sr="arg8" val="0"/>
</Action>
<Action sr="act3" ve="7">
<code>129</code>
<Str sr="arg0" ve="3">var t = JSON.parse(global('HTTPD'));
var dur = t.routes[0].legs[0].duration.text;
var dist = t.routes[0].legs[0].distance.text;
var msg = "I'm on my way.";
if (dist) msg += "";
if (dur) msg += " I should be home in " + dur + ".";
var ok = sendSMS(global('%HOMENUM'), msg);
flashLong("Sent message: " + msg);</Str>
<Str sr="arg1" ve="3"/>
<Int sr="arg2" val="1"/>
<Int sr="arg3" val="45"/>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%HTTPL</lhs>
<op>7</op>
<rhs>0</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act4" ve="7">
<code>11820</code>
<Bundle sr="arg0">
<Vals sr="val">
<com.intangibleobject.securesettings.plugin.extra.BLURB>GPS Disabled</com.intangibleobject.securesettings.plugin.extra.BLURB>
<com.intangibleobject.securesettings.plugin.extra.BLURB-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.BLURB-type>
<com.intangibleobject.securesettings.plugin.extra.ENABLED>false</com.intangibleobject.securesettings.plugin.extra.ENABLED>
<com.intangibleobject.securesettings.plugin.extra.ENABLED-type>java.lang.Boolean</com.intangibleobject.securesettings.plugin.extra.ENABLED-type>
<com.intangibleobject.securesettings.plugin.extra.SETTING>gps</com.intangibleobject.securesettings.plugin.extra.SETTING>
<com.intangibleobject.securesettings.plugin.extra.SETTING-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.SETTING-type>
<com.twofortyfouram.locale.intent.extra.BLURB>GPS Disabled</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.intangibleobject.securesettings.plugin</Str>
<Str sr="arg2" ve="3">Secure Settings</Str>
<Int sr="arg3" val="0"/>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%NAV</lhs>
<op>2</op>
<rhs>No</rhs>
</Condition>
</ConditionList>
</Action>
</Task>
</TaskerData>