Sounds interesting.
Remember to simulate not only sunrise and sunset but also moonrise and set.
The manual override should be fine. You can write a "main" routine then have subroutines that you can have it run if you push a button. Look up "interrupts".
Expansion should be fine as long as you have pins available on your Arduino. You'd just need to hook up new components then do some more programming.