Salmon, did you try multisources with masters? Check out a tutorial on them. What multisource does is it lets you enable or disable a button or any other trigger or triggerable entity for that matter, when certain conditions are met.
Here's an example of how it works: You put the master value of a door to that one multisource, and you set an entity to target the multisource. The multisource will be off at default, and the door will not function because the multisource is off. But once that entity that targets the multisource has been activated, the multisource will turn on, and the door will also turn on and start working... and you can make the multisource have multiple inputs and it will only be on once they all are active.
So you need to use your head here, you have four floors, four buttons in elevator, plus one for each floor, so 8.
What you can try doing, (this is just me thinking of ideas), Is give all the buttons the same master value, linking to your one multisource. and then whenever a button is triggered, make that button move the elevator PLUS run a little multi_manager sequence that turns the multisource off, and then on. The triggering of multisource would have to be done by the same trigger, otherwise the multisource would be waiting for multiple inputs. You can make each button trigger the same multimanager event I guess.
I hope you understand what I just wrote, I mean it seems clearly fine to me, but untill you mess around with these things you might not know what I'm talking about xD