I got offered contracts from my team in s1(Lotus) and 2(Sauber). Even got multiple offers from them as i kept turning them down lol.
Problem is that when you get a contract with a higher team by beating a rival, you don't always have the reputation level required for them to resign you, no matter how good you did in the season.
in any case all contracts are just one year, but they can resign you if your rep is high enough.