Is it possible to program and build an Android Homescreen widget without doing it in Java?
For example I imagine it doing this via Cordova/Phonegap or Python Kivy? Is it possible with one of these? Or is there even another way?
You can interact with java from python using pyjnius (a kivy subproject, but it doesn't depend on kivy and can be used without it), including on android calling the apis to create and position native android widgets. For instance, kivy-gmaps is a kivy application that displays and controls a native google maps widget through kivy. I think I've also seen simple examples with webviews, a native android video player, and basic native popups.
Pyjnius is very powerful, and people have raised the possibility of using it to create native java-widget applications via python alone (as opposed to kivy's own opengl interface), but in practice I think there are some technical and practical barriers to overcome and I haven't seen signficant work in that direction. That is, it may well be possible, but nobody has done more than examples like the above yet.
(I assume that by 'Android widget' you mean the widgets of the native java api. Of course kivy has its own widget system that works fine, and the html options like cordova also let you make apps without touching java).