Here it is in 4 easy steps. My approach calculates an average wind vector throughout the duration of the descent, and uses that to calculate a new wind-corrected glide range.
1) You'll have to calculate an AVERAGE wind velocity (speed + direction) through all of the winds aloft altitudes (3k, 6k, 9k, etc). You can do this mathematically or approximate. To do this mathematically, calculate the 'x' and 'y' direction component of each wind vector. X = windspeed*cos(winddirection); Y = windspeed*sin(winddirection). Average the X's and Y's to get Xavg and Yavg. The new total average wind speed = squareroot((Xavg*Xavg) + (Yavg*Yavg)). Average wind direction = tangent(Yavg/Xavg).
2) With the average wind speed and direction, you can calculate a new average descent ground speed for the glide (use E6B or whatever). Use the reverse-course bearing.
3) Calculate glide range at altitude (I'd suggest memorizing the glide ratio in NM per thousand feet - always a useful quantity), and then multiply by (avg descent GS)/(Vbg) to calculate the wind-corrected glide range. If ground speed is higher than Vbg, then you'll glide farther - likewise for the opposite.
4) As you cross the shore outbound, the time to reach the decision point is simply the wind-corrected glide range divided by CRUISE ground speed; decision time = (wind-corrected glide range)/(cruise GS). Subtract off any time that it would take to recognize the engine failure, abort the flight and make the 180, as these quantities would penalize that overall time that you could stray from land.
At the point when you leave land, start the timer. These equations could be loaded into excel or some other spreadsheet tablet app. Most all inputs would be known prior to take-off, except for the actual ground speed. The key assumption in this method is that you will spend equal time in all of the winds aloft altitudes. Hope this helps!