I'm sure someone with more experience may have some input for you,but:
best way to upgrade hardware early on?
Often. So far as I can tell there seems no safe way to do much of anything. Any time you collect money from slaves, it's possible someone could be watching the transfer. And people don't always wipe accounts right away. Personally, my bank account was cleared out yesterday by someone fully 5 hours after the only risky behavior I had engaged in. So if you have money to upgrade, it may be better to use it than to save it up.
Connection speed: probably one of the more important things to upgrade early, simply because file transfers rapidly become painfully slow otherwise. For example, I'm downloading waterwall level1 right now, and it's going to take half an hour to do. Just one file. And uploading virii and wares getsto be ridiculous. So, more speed is good.
Harddrive: I recommend keeping redundant copies of old versions of files. It takes time and creates logs every time someone does something on your machine, so if you have version .7, .8, .9 and 1 instead of just 1, that's potentially twice as much time and four times as many log entries for them if they decide to delete or hide those files. It also provides extra buffer in case someone decides to try to hurt you. For example, let's say you have only a level 1 waterwall, and someone deletes it. If you don't have someone to help you recover, what can you do? You need a waterwall to get access to machines that have waterwalls to download from. So getting back that level 1 from npcsmight require you to log onto and download from each and every machine that has waterwalls .5 to .9 before you can download level 1. You don't want to do that. Also, just because you have a high level file doesn't necessarily mean you want to use it. It's fast to upload a .3 virus. Maybe you don't have two hours at the computer right now to upload a high level one. Keep old versions of files. A bigger harddrive allows you to do that.
CPU: This is useful, of course, but it's probably not a high priority to upgrade early on. It will speed up your cracking attempts, but I've yet to see one take more than 30 seconds, so that's not a big deal. Bank account deletes take about 5 minutes, which is a nuisance, but that's not something you do very often. It will speed up your log entry changes, which is very useful as it reduces the window of time that other people have to see you, but going from say...9 seconds to 8 seconds...sure it's a good thing, but probably not enough of a good thing to go out of your way for early on.
External drive: only useful to recover from malicious hacking events. Useful, probably, but external drives are so expensive for so little space that they simply don't seem very practical. I've been playing since yesterday, and already I have files that are hundreds of megabytes. For 500 euroes, I could upgrade my drive to hold, maybe one file. For 5000 I could upgrade it to hold maybe two. Sure, do it...but it's just too expensive for too little to be very useful. The other upgrades give you much more value for their cost.
Best way to keep slaves?
Option 1: Put on the highest level virus that is practical for you to upload, and hide it with the highest level hider you can find. So long as you have a virus on a system, you'll be able to follow it through IP changes. Then, leave them alone. It doesn't hurt people much to have your virus on their system. Takes up some space, but not much. If you don't hide or delete their files, they don't have a lot of incentive to go out of their way to remove your virus. If they can't see it because it's hidden too well, they might not run a virus scan. If it's a high level virus, they might not have a high enough scanner to get rid of it anway.
Option 2: Delete everything from their system except their firewall, plus do the above. If they don't have friends to recover files from and are unwilling to start over collecting software from npcs, and if you simply check in once every day or two to re-delete things, it should be simple to keep them forever in check until they quit the game in frustration. You now have a slave for one month until he's deleted for inactivity. I say to leave their firewall to reducethe chance of others using his system too. Two virii on one slave means each player is getting half the income. So leave their firewall. If they don't have one, consider uploading one of a level or two below what you can bypass.
Option 3: Slap on a .3 virus in a hurry, hide it with whatever and move on to the next slave. What you lack in quality can be made up in quantity. This has a disadvantage in that the more systems you're connecting to, the more chances you're giving other to see you. And .3 virii don't last very long in my experience. But it's not difficult to sit down in an hour and get .3's on half a dozen systems. It might take multiple hours to upload a single higher level virus to one machine, and it might be frustrating to invest all that time merely to have it gone in several hours because your target has friends.
I make no particular recommendation of one method over another. They're all options.