This could either be a bug in my code or something I have to report on gmod's github, but it leads to the entities think they're still equipped by that player on the client, and cause more prediction errors.
Strangely enough record fix;stop does not fix the clientside vars still being desynced
With the PlayerButtonDown/Up hooks now behaving properly during prediction clientside, there's no more use of the SetInButton/HandleButtonBind hack I had to do to set the button as active during a StartCommand message.
This means that entities will now listen to the button press in a less "hacky" way and will not clutter the cusercmd with keys you don't want to force pressed or whatever.
As with the change mentioned above, WasKeyPressed is getting removed, it was an utility function and it's functionality was questionable due to it being related to CMoveData, however it MIGHT return.