I use a large hardware setup and Studio One handles all that very nicely. You can send bank and program changes to external instruments.
Instrument definitions are no big deal. It does not worry me because if you are serious about using hardware synths you should know what patches you have loaded into any memory at any time. One should not in fact have the same sounds in your synths all the time. You should be loading up many banks/sounds into the synth memories and auditioning and using sounds from any other stored banks you may have. e.g. My Roland JD800 only holds 64 patches but I have got like 3000 sounds for it.
Midi timing is better than Sonar using external midi interface. It is not linked to the audio side of the program either. It is independent and rock solid. It also records and plays back perfect live midi timing too. Internal midi resolution is special within Studio One and way higher than standard resolution.
Studio One can also be set up to loop while you might have a bunch of midi tracks engaged into record. You can jump midi tracks the fly and drop new midi data into any track you land on. All seamless and gapless. Sonar cannot even do this. It falls over when you try this. For me this is a revelation.
Midi editing is way more advanced than many think. Watch the video on Groove 3 on
Recording and Editing Midi and you will find all this out. Granted no event editor. You an always have Sonar on your system and load up a midi track if you need to see the event list too.