Talked to my vendors and I'm just updating this thread in case someone runs into the same problem and finds it.
1. Its NOT an Authorize vs Braintree issue. Your gateway doesn't care at all. It has everything to do with your Merchant Service Provider.
2. Different merchant service providers have different rules. For reference, Cybersource (a Merchant Service Provider, and Authorize.net's parent company) does not allow you to take a credit card payment at the beginning of a software trial period. They require you to give the trial, THEN ask for the cc info and begin the recurring payments immediately after taking the information.
Cybersource claims that this is what they are supposed to do: when you take cc info online to charge, you pass that information to visa/mastercard/whatever credit card company, who then authorizes the transaction. There is an auth code associated with this transaction, and the auth code expires eventually.
They've told me that the rules from visa/mastercard are fairly clear that you're supposed to charge once you take the info, but some Merchant Service Providers aren't very strict on that.
tldr: Cybersource won't let you take credit card info until you charge the card. You'll have to find a different MSP.