Not possible directly from within the actual app I think, but you can do it indeed in the cloud platform.
You can also give other (non-developer) users access to the cloud portal, so it doesn't neccesarily have to be a developer
Try
try{
this.getContext().getExecutionThread().interrupt()
}catch(Exception e){
}finally{
}
You can also iterate through the action stack to get a specific Microflow or Action to interrupt. Alternatively throw an exception if its not handled anywhere up
I still dont know what the M2EE service call is for interrupting a thread, but thats also something to look into
Build a test interface using the following to create non persistable thread rows
java.lang.Thread.getAllStackTraces().keySet()
Stored in one of the fields can be the id, and then you can write an action to get a thread by an id value. You can also push a microflows thread into this list with an action at its start, flag those, and automate termination of such threads via a scheduler or something.