While I don't see Python in the picture at all, I think, web-tech really is the way to go cross-platform at the moment. Especially all the additions, like WebGL, make it versatile and usable for all kinds of applications.
However, web-tech has at least two fatal flaws. It is slooooooowwwww. In addition to that, especially in older versions of webviews, a lot of the app APIs do not exist, so JS has no access to certain features. Those two combined might, depending on your app, make usage impossible, so Java and Kotlin are still the way to go if you want to have an awesome app with good performance, low battery drain and everything the Android API has to offer.
In the future, I see another language, which might fight for its place in the world of cross-platform development, but which, in contrast to web-tech, can deliver high performance and low battery drain, while still having access to all of the Android APIs and more! The language I am talking about is Rust. Rust already is very cross-platform and has tier-2 support for Android. It uses the NDK internally, and compiles to very fast and optimized machine code, leveraging the power of LLVM, which is a proven, battle-tested compiler suite most famous for the Clang compiler. That means, there is no VM or single-threaded logic in between. Today, we have phones with many CPU cores, so Rust can go wild.
But what about WASM? Well, let's forget about the fact that you would have to use Rust (or C/C++) either way for a moment. Not even WASM can live up to that, because WASM also is still in a managed VM environment and has the problem of having to rely on Web APIs. To be honest, if you write your code in Rust either way, why not go native? The only reason I could think of is the power of HTML and CSS, and the lack of a good GUI library in Rust. However, I am pretty sure, that something like that will emerge one day. We are talking about the future, after all :)