Hi msantana,
welcome to the community,
As far as I can see, you have been able to edit the correct files, and both you solutions are working.
Point per point, here are my answers :
1. There is another BEST coding practice is doing it all in javascript (separated). Basicaly when you embed JS wintin the HTML dom structure is not very clean to my point of view. First because if you have a lot of JS, it can be unreadable. Secondly because if you choose to call another JS function, then why to do it in the html ? Thirdly because if you have repeated fields, you have repeated JS. And then fourth reason is you JS is more visible in the html selector, then in a small JS appart. Let's say that the best practice for my point of view is to put JS in the script tags. For others developper and also for you it is more easy to find it.
2. JDom is not a complete framework. It only handle the things that your component needs. Some features has been kept during the years and are not used anymore, but basically JDom has been created for filling the lacks of Joomla for your components. It can be improved a lot but it is not really my priority because I would love that JDom disapears completly the day that Joomla finaly integrate a real HTML abstraction. For the moment JDom is clean enough and can be used, but I consider it as a bridge wich would never has to be. The good thing with JDom is that it is really simple to use and simple to custom / add / fork.
So, to answer you about the 'onchange' event, I didn't implemented it because it is not used and if I had to, I would had to implement all possible events of the input... I do not want this because JDom is already heavy in terms of performances (when you repeat in grid for instance), so the less useless code it contains, the best it is. Selectors permit to achieve it in a good and simple and raw way.
3. It is now deprecated. It can only recieve the 'submit' boolean in parameter as below :
'submitEventName' => ($this->getOption('submit') == 'true'?'onchange':null),
4. as explained in 2. it is for optimization reasons, and because not only 'onchange' event exists for inputs (onclick, onfocus, onselect....) The best practice is to attach the events AFTER the dom tree initializated. The only thing JDom does is to automatically attach the 'submitForm()' event because it is used a lot, and it is really convenient : (submit = true)
5. Yes of course. Directly in your template. Choose the 'exploded' way for your forms.
The problem for the moment is that parameter is global for all your component. (Must be improved).
-> Choose 'exploded' in the 'Form style' parameter of the config
-> Download again
-> Copy the generated exploded form layout (template file)
-> Place it in the fork directory tree (same place... guess you know how the forks works)
That's it. (And don't forget to set 'Condensed' form style again in your config.)
So basically, now you can insert HTML before and after every single field.
Hope it helps.
Don't hesitate for further questions.
Kind Regards.