Hi, what a great topic you have here!
Took me a while to read through all posts, and it did provoke some thought process. I’d like to share some ideas and observations.
If main problem of non-vectored tailsitters is different requirement for CG an in forward flight and hover, maybe it’s possible to change location of CG by moving battery inside the plane by means of servo actuated by estimated airspeed. Another option is to move center of pressure by moving tail/canard type surface back and forth (less feasible).
Dozens of tunable parameters are intimidating, and their number is continuing to grow. Maybe some kind of analysis can be done on logs to automatically find better set of parameters, and then load them into aircraft and fly again, then repeat.
Existence of two sets of PID parameters (plane/quad modes) complicate things two. In reality it’s the same aircraft, so only one controller should exist, (obviously dependent on the airspeed).
Also there is no technical reasons (other than operator convinience) to have speed/pitch angle limited in qstabilize mode. Transition can be seamless (in theory).
On note of transition - if you need rapid transition from hover to FF, it can be done via yaw/roll combination (sort of knife edge).
About quad tailsitters without control surfaces - should be possible, do not see why not. But the frame should be aerodynamically stable in forward flight.
Overall, I think we should rethink controller hierarchy. Airframe types have a lot in common (some combination of (potentially vectored) motors, fixed and articulated aerodynamic surfaces). Given the configuration, there should be a way to know what frame can do (max angular acceleration vector, max acceleration (thrust + lift) and how (servo/motor outputs given current state, including airspeed vector)). It can probably lead to unification of plane/quadplane/quad/tailsitter codebases.
Modes, on the other side, should concern only translating user input/waypoints to desired linear and angular acceleration vectors. Maybe it’s how it works now, I just had a brief look at the codebase.
I was thinking, vectored tailsitter with control surfaces can probably move without roll if motor tilt and ailerons with not work together, but against each other, giving zero pitch change (but very slowly, because vectored motors have much greater pitch authority then ailerons).
Overall, I am very excited because I think tailsitters with allow for very efficient flight in terms of range - very high wing loads become possible without concern of takeoff/landing speeds.