Special thanks to Dullstar for isolating the code and finding the eventual fix

For those interested, and for namida in order to port the fix to NL, here's what did it:
GameWindow.pas
procedure TGameWindow.GotoSaveState(aTargetIteration: Integer; PauseAfterSkip: Integer = 0; aForceBeforeIteration: Integer = -1);
var
UseSaveState: Integer;
begin
if aForceBeforeIteration < 0 then
aForceBeforeIteration := aTargetIteration;
CanPlay := False;
if PauseAfterSkip < 0 then
GameSpeed := gspNormal
else if ((aTargetIteration < Game.CurrentIteration) and GameParams.PauseAfterBackwardsSkip)
or (PauseAfterSkip > 0) then
SkillPanel.DrawButtonSelector(spbPause, False); <-----------------this line provided the fix
GameSpeed := gspPause;
In Dullstar's words (from Discord), this is how the fix works:
This will force it draw the button without the highlight (which I believe would necessitate a redraw of the entire button because you can't just undraw the highlight), and then GameSpeed is a property that's set to actually call SetGameSpeed when it's written to, and so SetGameSpeed will draw the highlight on the freshly-redrawn pause button.