I had a similar problem where on my way to class, some random sim tried to engage mine in conversation and I cancelled it but I still had to wait for him to walk all the way over to my sim (which took FOREVER) before it truly cancelled. So my sim got to class like 10 minutes before it ended. Not a great start. However, he was able to turn it around and get an A+. I pay attention and start sending them to class like 2 hours before it starts now (the walk he had in Foxbury seemed longer than the walk in Britechester, though.)
I think his bike slowed him down, as well. So I click “walk here” now.
Oh, one more thing. The “Go to Class” drops out of queue for no reason sometimes. Then you don’t get the button on the class schedule until it is starting. So know your buildings!