Nice one.
Something important missing in this framework is a logic to check the number of people in the elevator. You should use webRTC to count the number of users using the elevator. And if it is more than 8 it should sound alarm!
So the modified algorithm will be as follows. When the user clicks elevator, it first sends a distributed query to all browsers and each browser replies with 0, if elevator is not being used, or 1 when it is used. After the polling is done, it sums all responses. If sum_resp_elev<8:move() else
Ring_alarm()
Nope. When you're at the bottom of the page, you should first have to call the elevator. Then it should stop at all those levels at which other people have also called it before coming to your position. Then you get a chance to be kicked out for being overweight.