There will never be guarantees.
The "up to 48 hours" is commonly used because that's the ttl of many things that matter. For instance, NS records for names in the .com zone have 48 hour ttls.
You can give better estimates to your users if you know the state you're transitioning from. For instance, a brand new .com domain would be 15 min negative ttl plus the .com zone file update frequency.