I know the most direct route takes 3.5 hours, but is it scenic enough? Where do I have to switch trains?
Generally the change is at Arth-Goldau, a very short ride from Luzern. The reason is that Luzern (local spelling) is a dead end station so to keep the train running without a slow change of direction most long distance trains (probably Milano Centrale to Zürich or Basel via Zürich) just stop briefly at Arth-Goldau where passengers for Luzern change. I haven't seen any as fast as 3.5 hours - more likely just under 4 hours. If you take other offered routes they may go via Olten via the BasisTunnel which has much less scenery and lots of darkness (it goes under the Alps instead of through or over them) and a much longer total trip.
How scenic do you want it to be? Is time or more mountains more valuable to you?
The direct route swoops through the mountains, using spiral and dogbone tunnels as it winds through the mountains.
If you want more you take the Bernina Express (note that in Switzerland Express usually means very slow as it is on a twisty touristic scenic route) via Tirano, Sankt Moritz, and Chur, but that will be an all day event. Count on 12 or more hours and many many changes of train.
Closer to 4 hours. Most of the trains are EC trains and change at Arth-Goldau, but one changes at Olten. A few regional trains change at Lugano or Bellinzona. There is one direct (no change) EC train at 3:10 pm everyday. The route should be quite scenic except the 9 mile stretch in the Gotthard Tunnel.
Get it while you can. In a few short years, a new 30 mile tunnel will cut out a lot of that mountain scenery as well as knocking an hour off the travel time.