Otonashi did pass on, although he was the last to pass on. He is assumed to have reincarnated at the end of episode 13, the final episode of Angel Beats, and it is heavily implied he meets the reincarnated version of Angel.
The reason why he couldn't pass on just yet was not fully explained, but we can try to form a conclusion from it, so it is not entirely speculative. First, he lost all of his memories and so he has to regain it to truly understand what he regretted. He did not end up in the afterlife normally like the other students had, so it's highly possible that he did not have a regret in the first place. It could be that he was in that afterlife in order to have Angel move on with her life, as she regrets not being able to give thanks to the person who gave her heart. Kanade, the Angel, was there before him and that normally wouldn't make sense since he died before her.
Another explanation is that he simply regrets not being able to achieve his dream of becoming a doctor or more specifically, to help people. He wanted to help people after his sister's death and because he died ...