Gibson had been throwing up for a couple days, which really isn't a huge concern if they are acting normally and it's not frequent (hairballs are real!) so I had decided to monitor for a bit. Yesterday morning he was quiet and then Widget threw up too.
The two of them ended up at the vet for the day. After ruling out obstructions (because I also found a piece of ribbon in the litter box), it's been determined that they probably have a virus. Widget is fine (as is Timber), Gibson is okay. He is going back into the vet again today so they can make sure he stays hydrated.
And now it's time to see if I can get Gibson to take a pill...