ok, I just tested both ways in pinmame, there is an error in processing at bootup - it will only show the hstd on the displays. After the game is played, it works fine. (if match is on or off). So, this is the opposite of what you're seeing, which is strange. The hstd lamp does cycle on and off at the end of the game as its supposed to, and it's lit on the stuck hstd at bootup as well. I will likely redo it so it cycles at bootup since it's supposed to do that, but I don't get why you're getting the opposite of what the stuck routine is here.
here's the code snippet.... it's actually something that didn't get changed in 9 ball, (unlike quicksilver, which had much tighter code):
swi ; start pigs
rcflagset ; set pigs multiprocessing flag
lampbvalueon $32 ; game over
show_credits ; get credits on display
show_hstd ; get hstd on all 4 displays
update_match ; do match/game over
So the show hstd routine does key off having the game over lamp lit, (at least on quicksilver it did, which was the bug).
I think likely what's going on so it's not cycling is that the timer for it is not getting set so I'll double check that.