There probably is no real tool that exists which does what you are looking for, because the paradigm of having special snowflakes that you ssh/rdp into is fading because it does not scale. You should think of your servers as cattle, not pets.
Instead of ssh-ing into your machine, and running puppet apply
; it is better to use a puppet server, and leverage parameterized classes to define which build should be released.
Puppet Master
External Node Classifier
Ideally, you should have two to four nearly identical servers, each with identical configurations. (production + stage + qa + dev). That way you can test that your deployment works correctly on a machine before you push your deploy to production.
If your deploys require multiple steps that can not be encapsulated in your module (like remove from load balancer, modify database, ect...). Then you will want to augment your puppet runs with a tool that can do these steps in order.
CloudSlang Orchestration Management
Capistrano Deployment Automation
RunDeck Gui that define jobs / Tasks
Other tools that can help with the deployment procedure.
Consul Service Discovery + Reporting
Lastly, it sounds like you want a feed back loop that tells you if a deploy was successful. Puppet master, and the foreman can both do that. You could also report the status to a REST base database.
Then use a dashboard style tool to show the last x number of results.
Or, you could push straight to a chat room like slack.
You mentioned watching logs to find the output of commands. You could setup log monitoring, which could show messages in a dashboard, or even send alerts if a particular line is logged.
Here is documentation on setting up an ELK Stack (Elasticsearch, Logstash, Kibana )
Other Resources
https://sysadmincasts.com/episodes/47-zero-downtime-deployments-with-ansible-part-4-4