For 1, both are possible. Second is more common and could be ambiguous. (Use ‘had’ if finished in the past. Using ‘had’ or ‘have’ is possible if it’s the present. ‘Have’ is better then if not otherwise clear from context.)
For 2, you can use ‘can’ as follows:
She can read well even though she hasn’t started school yet.
Saying ‘starting school’ doesn’t sound right if it hasn’t happened.