Usually it means he is a nice guy but the spark or excitment isn't there - for me it is none of the things you have listed. What I have noticed is it tends to be a lack of sexual tension that is often created by flirting or playfulness between you.
Dating is based on perceived value system. Unless a guy is ridiculously better than a girl (has way more money than her for example, or better looking) most women will size you up to determine if you are below or better than them. Women are hyperglycemia and it's ingrained in their DNA to only want to get with men who are better than them.
A woman will do something called shit test to see if you are lower value than them whether they are aware or not. They will do things they no are wrong just to see if you'll call them out on their shitty behavior. They will disrespect you and see if you call them out on it.
And doing nice things for them before sex will only make their pussy dry up rather than give attraction. Women perceive niceness from a man they are unsure about as him pandering up to her for sex/relationship which women perceive means she is more valuable and u are basically trying to bargain with her to give you a chance.
While a guy who doesn't do nice things for her or go out of his way to do nice things for he is considered her equal and might be given a chance. A man who treats her like she is beneath him will be perceived as higher value than her and therefore she will sleep with him. It's one the reasons assholes do so well. They don't give a fuck about the girl and see her as beneath her. This type of attitude excites the female brain.
Think about sex. Most of the time the woman is in submissive position. Women will only submit to a man who is better than them.
Didn't attract her on that kind of instinctive level.
Qualities like being kind and genuine and just being yourself and what a lot of people on paper for a partner. But it's usually not what actually makes them see someone in a sexual light.
Changes to his behavior might not work. Some girls just aren't attracted to a certain guy.
However, if there are some changes to behavior to improve the odds of being seen in a sexual light, one of the key ones is confidence. That doesn't mean boldly asking her out. I think the easiest definition of confidence is not really wanting the girl that much. Like gay guys have a ton of "confidence". Players have it because they're just looking for sex and can bounce from one girl to the next. Married guys have it because we're unavailable. For guys prone to falling for girls, I recommend asking them out before they do.
Then of course being popular helps, well-liked among all types of friends (mixed age groups, genders), charismatic, suave, good-looking, muscular.
Being dominant also usually helps. Blast up the masculinity.
Oh and don't put the girl on a pedestal. Don't act like you're so lucky to have her attention. She should also be lucky to have yours (confidence again).