Here's what's going on: the primary meanings of the words "sleep" and "at" are slightly incompatible, but combining them leads some people to stretch them beyond their primary meanings in a reasonable way, and some people refuse to stretch them.
At
The primary sense of the word "at" is spatial: it mainly indicates a location without regard to its structure. You say "I am at work" or "I work at 10th St. and Main" when you just mean the location; you say "I am in the building" when you want to distinguish being inside or outside. My answer here gives more details. The main thing to notice is that "at" tends to suggest that you are regarding a location as a point in space even if really it's larger than that.
When you use "at" temporally, you're making an analogy with its spatial sense, so "at" tends to indicate a point in time. So, you say "My plane landed at 1:34" or "We're going to have a meeting at 9:00."
Stretching slept and at to make sense with each other
Sleeping usually takes a long time. It doesn't happen in an instant. But "at" suggests that you are talking about an instant. Strictly speaking, that's a contradiction. So, when you say "I slept at 10:00", a listener must stretch "sleep" and/or "at" in some way to make sense of the sentence.
Before I explain what happens, let's look at "We had a meeting at 9:00." A meeting, just like sleeping, also takes time. It doesn't happen in an instant. But no one is stupid or dogmatic enough to insist that you always say "a meeting from 9:00 until 10:00" or "a meeting starting at 9:00". No one interprets "a meeting at 9:00" to mean "a meeting that lasts only an instant, occurring at 9:00". People reasonably interpret "a meeting at 9:00" to mean "a meeting that starts at 9:00". Since "at" suggests a point in time, and a meeting extends for a range of time, you have to think of what would some reasonably mean by "a meeting at 9:00". Since usually you want to indicate when a meeting starts, so you can all arrive at the same time, you reasonably take "We had a meeting at 9:00" to mean "We had a meeting that started at 9:00".
When someone hears "I slept at 10:00", they are in the same position as when they hear "We had a meeting at 9:00", with two differences. (1) Using "at" with "sleep" is unfamiliar, so it might be a new stretch for them. (2) The verb "meet" does suggest an instant in time: the instant when you meet. It's hard to know exactly when you fall asleep, so the idea of a starting time for sleeping is not as salient. Whenever people talk about scheduling meetings, the start time becomes salient—that is, your mind is primed to easily put attention on the start time. Since we don't usually talk about the start time of sleep, it doesn't "jump out" as easily as the obvious meaning that you have in mind. A listener wonders if maybe you misspoke or if they misunderstood.
Dictionary-thumpers refuse
Some people are less willing than others to bend words beyond their usual limits. You've probably encountered a few people who, when you bend a word to communicate your meaning when no other word has a closer meaning, opens up a dictionary, points to the definition, says "You're wrong!", and proceeds to disprove, with ironclad logic, the absurd proposition that results when the dictionary definition is taken as what you meant.
That's crazy, and happily not very common, but the fact is, there is a wide range in people's willingness to reasonably stretch words beyond their primary meanings or the usual things they're accustomed to hearing them applied to. Some people go along with the reasonable stretch easily; some refuse to go along with it until it becomes familiar through other people's usage.
Describing a routine
So why is it less objectionable to say "I sleep at 10:00" when describing a daily routine?
I think there are two main factors here: when describing a routine, you usually treat each activity without regard to its structure, often mentioning only its start time; and a routine is a plan, not an actual event.
Wake up at 6:00 a.m., jog at 6:30, breakfast at 7:30, start work at 8:00, status meeting at 9:00, lunch at 12:00 p.m., resume work at 1:00, leave work at 5:00, dinner at 6:00, post to ELL at 7:00, and sleep at 10:00.
The succession of "at"s establishes that each time is the start time for an activity. "At" is appropriate because the schedule doesn't describe what happens inside each activity. So, a reader is less likely to notice that "sleep at" would be unusual in other contexts. Proximity agreement is another situation where people often don't notice that a norm has been violated, because some other, more-salient factor drowns it out.
But probably the more important factor here is that a routine is a plan, not an actual series of events. A plan is an idealization, which exists only in your mind. So, in your mind, as you plan out your routine, you imagine that you start sleeping at precisely 10:00, just as your meeting starts at precisely 9:00. In an idealization, you think of activities as starting at precise, known points in time even though you know they won't go exactly like that in reality. That makes "at" a very good fit. But if you say "Last night, I slept at 10:00", this sounds strange because it suggests that you know precisely when you fell asleep, and in reality, that doesn't happen.
The grammatical principle
The grammatical principle here is that grammatical rules can't explain what's going on with an unusual use of a preposition as in "I slept at 10:00". Meaningfulness and grammaticality result from a hazy interaction between many factors:
the primary meanings of the words
the clash that results when they're combined
the reasonableness or distance of the stretch from the words' primary meanings
the salience of elements of the topic that make good, nearby targets for stretching the words
the familiarity of the word combination or the manner of stretch
the listener's ability and willingness to go along with the stretch
and one more thing, which I haven't mentioned yet:
- competition from other words.
When there is already another, familiar way to indicate the same meaning, people are usually less willing to go along with a stretch. Instead of "I slept at 10:00", you would ordinarily say "I fell asleep by 10:00" or "I went to bed at 10:00" because of that uncertainty about when you actually begin to sleep. Since there is another way to say what a listener thinks you probably mean, this is evidence that either you misspoke or the listener misunderstood—which is reason for a listener to be less willing to stretch "slept" to mean "started sleeping". To stretch a word beyond its usual limits, people usually want some need to be satisfied by that stretch: some aspect of communication to be served, which is not already well served by a familiar construction.