The optimizer is completing with FULL optimization, and the plan hashes match on subsequent runs.
I think the FORCESEEK hint is the what got me over the hump and is of the most benefit in this case.
For some reason I see inconsistent behavior with regard to whether it chooses to use the non-clustered index when using a simple INNER JOIN. With CROSS APPLY it seems always use the index. Weird.