The first few stops aren't bad, but then things begin to go downhill. As already noted, 2 days--assuming you really mean 2 nights--is really one day in town with maybe a few hours on your arrival day if the transportation isn't too gnarly. The central and eastern Balkans more or less wrote the book on gnarly transportation.
Budapest to Belgrade takes over 24 hours by train. In theory the trip can be done by bus in 6 hours; I haven't attempted to verify that. There are two interesting cities between Budapest and Sarajevo. If you trimmed the territory you're attempting to cover, these would be worth a stop: Szeged (Hungary) and Novi Sad (Serbia).
Belgrade to Sofia by train takes (according to the Deutsche Bahn) 3-1/2 days (not hours, days) and routes you through Zagreb, Budapest and Bucharest with multiple nearly-full-day layovers. Heck, that's a nice vacation by itself; just spend several days at each forced layover stop (well, maybe not in Bucharest)! Fortunately, a company called "Karat-S" runs a bus that's scheduled to take 7-1/2 hours. It runs once a day, not necessarily every day of the week. I don't know how reliable that schedule is, but it's obviously leagues ahead of the train option. There may be other bus companies running that route. I was relieved to find one, and I stopped looking at that point.
The Sofia-Sarajevo trip is again faster by bus, but you'd first have to return to Belgrade (only 5 hours in that direction??), and two connections are involved. That's risky. I don't know what the total travel time will be, but I'd expect at least 10 hours, and it could be much longer if the schedules don't jibe well.
I traveled by bus from Sofia to Podgorica, Montenegro. It took essentially two full (10-hour or so) days. I spent a night in Nis, Serbia. Trust me when I say that traveling by public transportation in that part of Europe requires an adventurous nature and flexibility. With a series of 2-night stops in front of you, flexibility is something you will not have.
Now, about your plans for Bulgaria: I am not familiar with Blenik. Is there a typo there? I've been to Plovdiv and Veliko Trnovo. I'd recommend both of those rather than Sofia. Plovdiv really deserves more time than what you'd have left over after spending 5 hours traveling from and back to Sofia.
Bulgaria is worth a lot more than 3 nights, and Romania is at least equally interesting. The first change I'd make to your itinerary is to postpone Bulgaria until a later trip. That will cut out probably 12+ hours of bus time. It's not enough, but it's a start toward making the latter part of your trip survivable.
The issue with Ljubljana has already been pointed out.
This itinerary looks very big-city-heavy to me, given that you say you prefer natural sights. I am a city person myself, but I would want to include some smaller cities rather than being so heavily focused on capitals--though I do like the places you've chosen, Bulgaria aside.