I believe you can currently achieve the former behaviour, i.e. that states that hold are the ones that are achieved but are not prior states, by defining the rule in the following way:
$inf isa inference-rule
(some-state: $st) isa achieved;
(some-state: $st2) isa prior;
$st != $st2;
(some-state: $st) isa holds;
This will work under the assumption that a prior state exists in the database.
Also, I have removed the pattern part with the label definition:
(some-resource : $a) isa $st;
$st label 'stateA';`
as in conjunction with the remaining pattern it is trying to reify a type which is currently not allowed.
Hope that helps. Let us know if you have any more questions.