Yes all of those things are possible, but from experience of designing these bosses, it's best to keep things relatively simple as the more complex and interdependent elements of a fight there are, the more prone to it being broken in some way it is.

I don't plan battles from a programming perspective anyway. I think of what I want to happen from a gameplay perspective first, so I'd probably ask any suggestions of battles are written in those terms.