3 years old is old enough for this type of behavior modification strategy (we use them at the school I work at with 3 yo that have developmental delays successfully). Any time that you use a chart for rewarding behavior, you need to keep consistent with it over at least a few days. You need to expect fall backs. Obviously the checks are meaningful to him somehow, just make sure he understands why he's getting them. It's true that immediate reinforcements work best for that age, however I see it hard to give him an immediate reward when the behavior you want from him is to learn to stay in his room and fall asleep. To address this, you might change the way you give the checks by breaking down the time period. For example, you might give him a check for every 5, 10, or 15 minutes he stays in his room, and set a number of checks for him to earn in order to watch t.v. the next day. This way the immediate reward is the check, and the delayed prize is him getting to watch t.v. Since he is 3, you don't have to expect him to count the checks. For an easier visual, you can draw circles and draw lines down the middle to divide the circles into 4ths or 6ths like a pizza, then you can color in a pie section after each time period and tell him that if he earns a certain # of pizza slices, he can watch t.v. the next day.
Another thing you need to change is the way you are looking at the strategy. If you look at it as you are REWARDING his positive behavior, instead of PUNISHING the undesirable behavior, you transfer that positive energy to him. He becomes exited about wanting to please and earn his reward, rather than anxious or fearful of disappointing himself or you.
Hope this helps!
C.