Unpublish Authors With not Fulfilled Fields

You’re doing something like this tutorial on categorizing wordpress users, correct?

I think you should do your filtering in your theme files, not on a hook. Just add an if statement to your template file (probably author.php) that tests if your custom fields aren’t empty strings, and then do whatever (404, redirect elsewhere, throw a notice…)

Unless you need to specifically have a parameter that says whether an author is public or not (e.g. you’re planning to write a back-end user management GUI or something like that), hiding users through theme files should be the easiest way to this.