Switching authoritative nameservers - how do you set the TTL?

No its not possible, and it's very, VERY rare for a client to connect directly to the tld or root nameservers. Almost inevitably they will use a local nameserver, then the ISPs nameserver which in turn may use further intermediate servers before the request goes to the tld servers.

How quickly the changes propogate depends on the existing TTL you've published. But the length of time for the a changed TTL on your current nameservers will take is dependant on the old value, and even if you set this to a minimal value (6 hours) then you've got another 6 hours on top of the last update before your new nameservers propagate - so its going to take even longer.

Just do it.

BTW if you don't know when your old nameserver is going to drop your SOA records, it can be a good idea to publish an interim zone record naming both old and new as authoritative during the transition.