"We spent 30 minutes in a taxi to the hotel."
No, it's optional. 的 CAN be used when talking about the time duration of transitive activities ("We spent 30 minutes in the taxi", "we studied all day yesterday"), but it's not necessary to get the meaning across.
Yes, that sounds wrong. You need the 三十分钟 (30mins) after the verb 坐了 (sat). Like in English, "we spent 30mins..." and not *we 30mins spent.
I always thought of it as how long goes between the verb and the object while the days and the date go directly after the subject or directly before
These questions where you have to get a long exact way to say it right are just so frustrating.
I might very well be wrong, but it could be that you used 做 rather than 坐.