Hi,
For your first requirement: Say teacher is site manager of particular site eg> School, Teacher can change his status and set it as "On leave Today".
Now when other students who will be having other role say site contributor will see this teacher's updated status in their my-activities dashlet.. where you can filter results based on "Status Update", so user can see what their teacher has posted, or in "School" site there is one Site-member dashlet is there, it will also show user's status with username …
Or.. the status that User is setting , it will be stored in person node as property "cm:userStatus", so you can create one custom site-dashlet, which will show teachers updated status, from this dashlet also students can get their teacher's status ..
For other requirement student need permission for Leave, in that case student can start a simple workflow say OOTB Ad-Hoc workflow, simple approve reject workflow.. which will come to Teacher for approval …
i will let you know if any other good approach is available ..
Thanks.