Fast answer
A good Milan-to-Varenna arrival plan starts with the rail day, not the lake wishlist. Use Varenna-Esino as the fixed arrival point, then decide whether the first hour should go toward the station edge, the ferry pier, or a lighter lakefront reset. Add Villa Monastero or a ferry move only when train timing, luggage, walking route, tickets, weather, and the return plan leave enough slack. The safest first version keeps the arrival day narrow and leaves a fallback if the train, ferry, villa, or weather layer gets tighter close to travel.
If you only do one thing
For a first arrival, treat Varenna-Esino, the station-to-lakefront walk, and the return plan as the fixed frame. Add one nearby ferry or villa move only after live train schedules, ferry timetables, ticket rules, luggage route, weather, and opening days have been checked.