Revised after everything was "wrong".

Not even going to try and describe the issues or major changes. They are
evident.

Things that could still be done:
Add "wait queue" # when the person is waiting to cross. (This might not
be needed, it seems obvious most of the time, espicially with the speed
changes).
Stagger the guys who are waiting so they aren't on top of each other
(probably way more trouble than it's worth.)