I don't have enough reputation to ask for clarification, so I am going to assume two things.
I don't use AD (at least currently), so I would prefer something that would allow me to connect to the
machines and have them running things from a remote location, or even
plugging in a USB device to configure.
I am not sure what qualifies as 'running things'. You don't mention an operating system for the workstations, although you do mention Active Directory. If my below assumptions are incorrect, let me know and I will see if I can modify the answer to fit.
Assumption 1
You would settle for a solution that allows you to plug in a USB device to the workstation and execute a file to deploy your 'configuration'. If this same process can be done remotely, that is even better.
Assumption 2
You need to support multiple different operating systems, including some variant of Windows, MacOS X and Linux.
Edit: I can see that you mention Windows multiple times, I do not know how I missed that. I do mention Windows support in my comparisons below, so I believe they are still relevant.
You're asking multiple questions, and I can't answer them all, so I will split them up and answer them individually as well as I can.
What should I be using?
This is a very subjective question that I can't answer.
Or am I looking at the wrong toolset, and should be using something else for these tasks?
I believe you're looking at the right toolsets.
Any suggestions or limitations on the abovementioned products? (Ansible, Puppet, Chef and Salt)
I only have experience with Puppet. I have heard of the others, but I don't know them very well. I will go through them one by one and compare them as well as I can to Puppet, using external sources.
Puppet
The open source version of Puppet does pretty much just what you're asking for, once installed on the workstation, you can remotely change configuration (you can also apply a single manifest locally, from a USB device for example).
The puppet agent on the workstation will contact a remote server at defined intervals to download a 'manifest' that defines the desired state of a list of resources, this can include software packages, configuration files, printers etc.
Along with Puppet comes 'puppetdb', a database that stores 'facts' about the workstations. You can write your own custom facts, but this is things like the hostname, IP address, what CPU it has and so on.
There are plenty of free 'modules' of high quality available for Puppet from what is known as Puppet Forge.
This is pretty much what Puppet does, nothing less and nothing more.
Ansible
To my knowledge, Ansible does pretty much everything Puppet does, in a supposedly slightly simpler manner - in addition to this it also focuses on provisioning and deployment, these features I don't really know about.
Like Puppet, Ansible also has a great source of modules available to download for free from Ansible Galaxy. Supposedly the modules aren't as great as the ones available for Puppet, but they are still great.
Source: https://www.devopsgroup.com/2018/01/10/puppet-vs-ansible/
Technically it doesn't support Windows, but it should be easy to set up anyway: http://www.oznetnerd.com/installing-ansible-windows/
Chef
Supposedly Chef compares much more directly to Puppet, although it is more focused on the cloud than Puppet is. Chef is supposedly the more 'advanced' of the two, where Puppet is the more simple one. Puppet supports a broader range of operating systems, while Chef has a very extensive API.
Source (which also includes a nice matrix for comparisson): http://www.cyberphoton.com/questions/question/what-is-the-difference-between-chef-and-puppet-in-configuration-management-software
Salt
This one seems to be the least used of the four, and I haven't been able to find a very good comparison to Puppet. It seems much more comparible to Ansible than Salt. It supposedly scales better than the other three, but while it does support Windows, it is not too happy with it.
Source: https://www.computerworld.com/article/2486206/virtualization/puppet-vs--chef-vs--ansible-vs--salt.html
Other comparissons of the four:
https://www.reddit.com/r/linuxadmin/comments/9ljveg/puppet_vs_salt_vs_chef_vs_ansible_which_to_choose/
https://www.intigua.com/blog/puppet-vs.-chef-vs.-ansible-vs.-saltstack