A contract outlines the minimum you must do. Doing more is absolutely possible, and sometimes even a good thing.
If I say in a contract "I will give you $200" and I end up giving you $300, I am still within the contract (I have given you $200 and then some). If I give you $199, then I am outside the terms of the contract.
To that end, the company is also beholden to the contract. If they say you're contracted for 90 days, then you get 90 days. If they say they will pay you to the end of the contracted period as long as you give 2 weeks notice, giving 4 weeks doesn't change that obligation. The will still have to pay you to the end of the given period. This is all assuming that you will show up and do your job. (and giving that you're wanting to give them extra time to prepare as well as the time you will put into training a new person I'd bet even money that you will show up.)