I can't quite work out if you are asking for help here or requesting implementation of a new feature.
The issue with your current workaround is that it only includes albums that have at least one track unrated. FWIW here's what I would do:
VirtualTag:
$If($Sub($Max(<Album Rating>,<Album>),$IsNull(<Album Rating>,0,$Min(<Album Rating>,<Album>)))=0,T,F)
Then an auto playlist:
VirtualTag IS F
Select by: Album
(I haven't spend too long on this so there might well be a better way but this does work. It is complicated by the fact that the Min and Max functions ignore null fields.)
Or another approach:
create a virtual tag:
label: Album rating inconsistent
$If(<Album Rating>=$IsNull($IsNull(<Album Rating>,,$Sum(<Album Rating>,<Album>)),,$Div($IsNull(<Album Rating>,,$Sum(<Album Rating>,<Album>)),<Album Track Count>)),,inconsistent)
Then set up a library filter or a playlist that has the rule:
Album rating inconsistent has a value
I'm guessing it will give the same result as tjinc's solution. (mine may be a bit overthought)
As tjinc mentioned: report back if your issue is not solved by one of these solutions.
And here's a third option.
This one should fulfill the latter part of your wish: "(and other tags)"
It requires two virtual tags:
virtual tag 1
label: TagToCheck
<Album Rating><Album Artist><Album><Disc#>
virtual tag 2
label: Inconsistent album tag
$If(<Album Track Count>=$Count(<TagToCheck>),,inconsistent)
Then set up a library filter or a playlist that has the rule:
Inconsistent album tag has a value
To define what tag should be checked for consistency over a whole album:
That is defined by the first tag that is listed in the virtual tag TagToCheck.
So if you e.g. want it to check if the year is consistent for all tracks of an album, in the example given, change:
<Album Rating><Album Artist><Album><Disc#>
to:
<Year><Album Artist><Album><Disc#>
Or if you want to check if all album tracks are of the same audio coding, use:
<Kind><Album Artist><Album><Disc#>
etc. etc.