I've made the following improvements in the mean time:
• No more choppy movement by sending events from the cart's charScript to the story, which then uses CharacterMoveToPosition(). The reason this works better is because that call returns immediately and you can queue multiple movements. So right now I make sure that always two movements are queued, so that the cart can still move while I calculate the next two positions.
• Support for (configurable) track switches. As an added advantage, there are no more infinite loops anymore that can get killed after a while, and the train can move faster without visual problems since there are no more short pauses at waypoints
• Updated the calculation of the waypoints for the turns to full 3D smile (slightly more accurate waypoints in turns on slopes)
• No need for the tracks to be global anymore

I uploaded a new movie (https now works too for the ssl-everywhere people wink ) that
• shows every waypoint of the cart as it gets queued using a light pillar. The colours indicate the index of the waypoint for that particular part of the track (by increasing index: red, white, orange, green, blue, purple)
• demonstrates that running over the same track in multiple directions in no problem
• shows some slopes. The terrain disappeared after the editor crashed at some point, so those tracks are just floating in the air now.