In a nutshell, putting any extra UI functionality into an ArcGIS tool or add-in is an antipattern, as the tools are designed to be portable within ArcGIS.
If you have a workflow which necessitates user input, this is a natural place to break the workflow up into multiple tasks. Before the step which would require the user input, write your data and use that data as the input for the next tool/add-in, plus whatever input the user would have supplied. This increases modularity of your tools and ensures that they can be accessed arbitrarily from any view.
This has the added benefit of future-proofing the workflow - say somewhere down the line someone invents a process which removes the need for user input, you can simply string your modularized workflow together in a 'wrapper' style add-in, rather than recoding the entire thing.
Hope that helps move things along!
Clinton
edit: for clarity