The bus from Cusco to Puno is nice enough, similar to what tour outfitter would use in the US. The highway is in good shape too, most of it being pretty level. If I remember it was good bit cheaper than the train to Puno.
I went on a van from the hotel in Puno to the Juliaca airport and arrived in Lima around noon if I remember. So you would need to plan your flights accordingly.