They are based on actual wait times as you decribe, but these times are already very stale by the time that the data is collected.
Look at it this way, you get in a short line and are given the red card. Ten minutes later, you get to the front of the line and they update the wait as 'ten minutes'. In that ten minutes, 2000 people got in the line (because the parade ended). The wait is now 75 minutes, but I don't realize that when I get in the line because the wait time sign had only just now been updated to 'ten minutes'. In my example, the data was ten minutes old. If your wait to get on the ride was longer, then the data used to update the sign would be that much more stale.