Are mere users still not allowed to interface with JS from Elm? I lost all interest when that came down.
But it's straightforward to interface JS from Elm. It's right in the tutorial under ports.
[0] formerly behind a review queue / review process to add to native-whitelist, now limited to two specific "core" organisations
The 0.19 change simply limited the ability to publish packages containing interop to the official Elm package repository. You can still host your own packages etc.
It's not rocket science tough, and it allows for clean interfaces. I wrote about it just a couple ago ago : https://lengrand.fr/a-short-introduction-to-ports-and-flags-...
Asynchronous IO through ports works just fine.