To clarify most of the tachlis discussion in this thread.
1. DOT requires the option to hold or cancel for 24 hours from booking, as long as 7 days out. As such, if American gives the option to HOLD, they don't need to allow you to cancel.
2. American didn't used to allow holds with promo codes. So IINM, you SHOULD be allowed to cancel after for free. Make sure it doesn't have a "HOLD" option on the page where you choose how to pay.
3. Putting an itinerary on hold now will allow you to purchase later at the same price, not a promo price.