you didn't say what you like to do or see, but 3.5 days in Budapest seem like a lot. Budapest is great, but i saw what i needed to see in about a day and a half.
i'd cut one day from Budapest (move Day 14 through 17 up one) and add a day to Vienna.
but like Rick Steves says: assume you'll be returning.