The problem is fairly simple:
while (Peek() != '*' && PeekAhead() != '/' && !IsAtEnd()) {
You are breaking the loop if either the current character is a * or if the next character is a /. In other words, you don't require the full */ token.
Instead, you'll want something like
while ((Peek() != '*' || PeekAhead() != '/') && !IsAtEnd()) {
top 8 comments