You didn't mention Girona, which I used as a base for visiting Cadaques a few years ago. Girona has a very large medieval district and a nice art museum of manageable size. There are more sightseeing possibilities in Girona than in either of the smaller towns.
One can take the train from Barcelona or Girona to Figueres. To reach Cadaques, a bus is required since that little town has no rail service. I think just taking the bus from Girona would be easiest. I assume you can take the train from Girona (or Barcelona) to Figueres and get a bus from there, but you need to be careful about changing modes of transportation in Figueres, because it has two train stations quite a walk apart. There's bus service between the two (by way of the center of town), but if your inbound train to the AVE (fast-train) station is significantly late, the bus will have departed before you arrive. In Girona, the bus departs from right outside the (sole) train station.
The Dali Museum is great and will take several hours to see if you're serious about it. You should book your ticket in advance to be sure you don't have to hang around to wait for an empty slot. The museum does get hit by the occasional bus tour, which can cause some crowding that necessitates deviating from the obvious path through the building. I also loved the nearby jewelry collection, which is covered by the same ticket. I was told one can go to the jewelry museum before the time listed on the museum ticket, but I didn't do that myself, and I guess rules could change in the post-COVID-19 era. That museum aside, I didn't find all that much to do in Figueres, and I did walk around a good bit in the town center. It's OK but not one of Spain's most attractive spots.
I haven't been to the Dali house outside Cadaques; it's a 20+ minute walk direct from the bus station, according to Google Maps; be sure to allow time for that part of the journey when choosing your entry time at the Casa-Museu. Cadaques is a beautiful white cubic village that's fun to wander around. It has some craft shops, and there's bougainvillea dripping everywhere.
I believe you'll get a nicer hotel room for the price in Figueres, but to me it's by far the least attractive of the three towns. Incidentally, I wasn't impressed at all by the meal I had at the restaurant in the Hotel Duran. It presents itself as a place with aspirations (I hesitate to use the word "gourmet" because it's not a really expensive spot), but there were several issues with my meal. It's not where I'd want to try a semi-splurge. However, I ate there only once and could have been unlucky. Or maybe they saw the solo foreign woman and just didn't care. It was "off" enough that I actually mentioned my disappointment before leaving, which I don't think I've ever done previously in my entire 69-year life.
Also in Figueres, I ate once or twice at the Cafeteria Astoria, which is a very casual sit-down place (not a US-style cafeteria) that seemed to be open longer hours than other restaurants. The typical meal hours in Spain are very late, so it was handy to have a place a hungry tourist could eat at off times. I think I had roast chicken. Not fancy or special, but convenient and not overpriced. This is visible from the intersection of La Rambla and Pujada del Castell and is a short walk from the Dali Museum or one of the stops for the bus from the AVE station. It's also near the Hotel Duran.
I wouldn't ordinarily opt to split two nights between towns as close together as Figueres and Cadaques. However, I'd want to have enough time in Cadaques to enjoy the town itself as well as the Dali house, so it's perhaps not a crazy idea if you'd otherwise be tempted to cram both Dali sights and the town of Cadaques into a single, long sightseeing day. But do check on the location of your potential lodgings vis-a-vis the bus/train station where you plan to arrive.