To your point 1:
Using Forms/UI does not mean you have to do it from EXE. While you can do it with VBA, it is an out-of-date technology, especially in terms of its lack of support64-bit UI component. However, it still does not make an external EXE a good choice in most cases. Again, I do not know your specific business case of why you have to do it from external EXE, so, not much to say, except for "I would avoid it, if possible". As for collecting user/calculating and finally drawing something with code, all can be done (and should be done, in most cases) within AutoCAD (VBA, or .NET API add-in).
To your point 2:
Yes, there is known issue with some AutoCAD COM API methods with late binding, where input parameter is "object", such as AcadHatch.AddHatch(), as you asked in another post. I did not try with with CopyObjects(), though (because I have moved on to .NET API and left VBA in the dust for long). I do not see a workaround, if you insist to use late binding with COM API.
If you still want to use EXE, for certain reasons, and want to take advantage .NET framework's rich UI for user input, one solution would be to use the EXE to collect the user input and then save the input to a data file (it can be plain text file). Then when input is done, the exe start AutoCAD and run a VBA macro, which read the input data from saved data file and do the CAD work inside AutoCAD. This way, the EXE app would only be used as user data collecting, and the CAD work is done with VBA, which would execute a lot faster than the CAD work being driven from the external EXE.