Well..
All 1st and second can be done easily with squid but about last one.. I am not sure.
About 1st one.. defining time then
# below line defines that which has to be restrict during the time slot
acl usertoblock src 192.168.1.15
# It defines on what time
acl midday time 11:00-14:00
# below instruct squid to deny userblock at the time midday which have defined earlier
http_access deny usertoblock midday
# Lastly we are saying that allow that user to access net apart of the specified time.
http_access allow usertoblock
here in above you can block certain user to not to have access for 3 hrs that is from 11 am to 2:00 pm
You can also make list of users or make whole network.
For second thing you have to learn delay pools, actually delay pools are easy but you have to lots of experiments to understand them, right now I can't remember exact way implementing so better you look out some delay pool guid on net or best is look squid.conf.default
PS: you have to make separate delay pool for each user to limit bandwidth for them.
Third one is also about delay pools, plz do read articles about delay pools and you will understand.
Also look this post
Squid delay pools