Delivery Algorithm - Find shortest paths
A max of 10-15 orders is small enough that you might be able to brute force it.  While this would exceed your execution time limit, it might be worth doing so on a small number of problems in order to compare algorithms absolutely rather than relatively.  Alternatively, you might be able to find precomputed benchmarks for this problem.

In general, I'm personally found of restricting routing problems to a Deluaney triangulation.  It's fast to calculate and has a Euclidean minimum spanning tree  (MSP) as a subset.  It won't have any route crossings (like those removed by a 2-opt).

However, the SLA constraint may work against that.  E.G. Say that the you have found an optimal TSP solution (a locally optimal solution) for W1, but it can only service k out of n orders in time.  In that case the globally optimal solution may require delaying the last (n-k) orders in W1 and going to the clostest order in W2.  There's no reason to expect this W1 to W2 switch-over arch to be in a DT over all the sites.  Furthermore, if your time windows don't overlap, there's no reason to visit W2 site during the W1 phase.

So then, I'd find a MSP for each subset of order sites (W1 &amp; W2).  On W1, apply Christofide's algorithm to get a Hamiltonian cycle.  Find the start node, call it S1, &amp; remove its longest arc in the cycle to get a Hamiltonian path through all of W1 - call this P1.

Next, compute the travel time &amp; check for broken SLAs on P1.  Eject the site that yeilds the biggest time savings until all remaining SLAs on P1 are valid.

Find the clostest point in W2 to the last site in P1 - call this S2.

On W2, apply Christofide's.  Find S2 &amp; remove its longest arc in the cycle to get a path through all of W2.

Recompute the travel time for P1 + P2 &amp; check for broken SLAs on P2.  Eject the site that yeilds the biggest time savings until all remaining SLAs on P2 are valid.

Finally, let W3 be all the previously ejected sites. Find the clostest point in W3 to the last site in P2 - call this S3.  Find a MSP on W3, apply christofides, find the S3 &amp; remove its longest arc in the cycle to get a path.

Solution is concatenation of P1, P2, P3, S1.  Clearly, there are cases where this won't give the optimal answer, but it should scale well &amp; has known bounds on the sub-problems which might help in determining its overall bounds.