Since I did get one simple use case working, I just created 2 LabelClasses and applied them. So in tandem they achieved what I was going for. I ran out of time trying to figure out the where clause. Here is my solution:
labelBase = {
symbol: {
type: 'text', // autocasts as new TextSymbol()
color: 'black',
font: { // autocast as new Font()
family: 'Material Icons',
size: size
}
},
labelPlacement: 'center-center',
labelExpressionInfo: {
expression: '"\u2714"'
}
};
labelClassDryRun = Object.assign({}, labelBase);
labelClassDryRun.where = "status = DRY_RUN";
labelClassServiced = Object.assign({}, labelBase);
labelClassServiced.where = "status = SERVICED";
......
labelingInfo: [labelClassServiced, labelClassDryRun, labelInfo]