I have a workflow that suits me, and even if it doesn't totally work for you, hopefully some of it will be of use. Bear in mind that whatever method you decide on, it's going to take time. Although the bulk of the work is done with BeaTunes, I use a couple of other tools as well.
1. Working in batches, clean up the files' metadata with MusicBrainz Picard - especially if there are unidentified tracks, etc (in the preferences, I save directly to iTunes/Music's Automatically Add To... folder, so I know that anything in my library has been cleaned in order to be imported)
2. I use iTunes/Music for folder management, even though I don't always use it as a player. It can also give you a head start on importing missing artwork and setting playback levels if you choose, although BeaTunes also offers these functions of course.
With such a large library, I find it helpful to set up a "Processed" playlist and a smart playlist for files not in the Processed playlist, limited to a manageable number (10K works for me). This helps keep track of what you've processed if you're working in batches, and will automatically include new additions.
3. I tend to run my library through Dupin before BeaTunes, as it's got a great level of control over eliminating duplicate files. Beatunes can also help with duplicates, but with such a large library I find a specialised tool helpful, especially as I can select the "keeper" file by bitrate.
4. BeaTunes. Well, you're on the site already, so I assume that was going to be part of your workflow! I tend to Analyse in a 2-pass method: first with year set to Replace existing song properties (with ignore compilation/earliest release boxes both ticked) and Discogs genre import. On the second pass, I change Replace existing song properties to Import missing data and run more thorough fingerprinting and analysing (I activate everything except Find similarities and segments, as it's not a feature I use often, and it seems to be quite an intensive part of the analysis.
5. Wait. With 3gb of music, this is going to take some time. You my want to make a cup of tea. Depending on your hardware, you may wish to make several.
6. Quicky check that all processing is done. By re-sorting the columns, I check that any data I need is updated. With such a large dataset, I always worry that something might have timed out somewhere along the way. If there are any files that look like they're missing a BPM or a colour, etc, I just reanalyse those files.
6. BeaTunes again/still. Once all the files are processed to the level you require, the Inspection pane will help tidy up any inconsistencies, flag duplicates (these may not have been obvious before all the metadata was updated)
6. Inevitably, there are things I'll end up editing manually, but this happens a lot more organically as I play through my library. But at least by this stage it's a clean, organised library, so that makes any tweaks a lot easier