Actually I figured out how to do it by using prioritized discounts.
For example, a room is $50/night, $200/week, and $550/month. I setup a rule with #1 priority that if a cart total is more than $4500 (more than 90 days), then the rule "3-month discount" applies and deducts $2850 from their cart total.
Then I setup a rule with #2 priority that if a cart total is more than $3000 (more than 60 days), then "2-month discount" applies, deducting $1900 from their cart.
Add a rule for 30 days, 21 days, 14 days, then 7 days, in that priority, and also make sure that none of the discounts can be combined with other discounts, then you have a tiered setup for discounts that works just fine.
you could also add higher months if you allow bookings for more than 90 days, just always make sure they are applied in order from highest to lowest.