I want to know what problems did you face to prevent you from moving in this direction?
just absolute lack of time.....
Asked in a different way, why do you keep adding to the Java part?
0) LAMW "GUI" was the way found after experiences/trials [and frustrations] for me and for many others (felipemdc, simonsayz, .... )
1) Code reuse: thousands of java/android tutorials deliver ready-to-use solutions....
2) we can embed all the logic (including asynchronous routines, exception handle, ....) in java side and leaving to pascal only the work of making the methods calls and responding to the events ..... making code generation [and use] on the pascal side "clear" and easier.
side note 1: yes, it is still possible other approaches in LAMW "GUI" and "fixes" including your suggestion about a global "gThis"
but we need a lot of [time and] code refactoring, testing/maturation otherwise we run the risk of break/stop everything [legacy] that is working ....
side note 2: @loaded is working in another direction: LAMW "NoGUI"