Never seen anything like this before in a programming language (VHDL/Verilog supports this sort of stuff of course):

  onchange(x){ doSomething()}//on change of x, perform an action
  every(x){ doSomething(x)}//as above but including initial value
  await(x; x > 2)//pause execution until the condition is met
  trans{//a transaction acting upon two references
    a -= 10
    b += 10
  }
  z <= a+b//shorthand for every
  z <- a+b//shorthand for onchange
Is this novel to abstract languages? Would something like this work in a language without a VM like C++?

I imagine needing registrations of these conditionals in the VM to watch and execute.

There are some languages that do this, especially reactive languages and there are some libraries for other languages that work kinda like this, for example Rx[1] works kinda like this or maybe Clojure's Javelin[2]. You could make an Rx-like system that works somewhat like that in C++, or you could use coroutines or a task-based system like Intel TBB to implement something kinda like this. It of course wouldn't be a first-class thing like in Concurnas, but I reckon you could implement the basic idea.

As far as languages go, the ideas you showed look similar to how Esterel[3] works, or perhaps Occam[4].

[1] http://reactivex.io/

[2] https://github.com/hoplon/javelin

[3] https://en.wikipedia.org/wiki/Esterel

[4] https://en.wikipedia.org/wiki/Occam_(programming_language)