08:23
<Ashley Claymore>
preventDefault not working perfectly with Observables has been well known for a long time. When using Observables there is no signal at the usage site of when async work is being introduced, so using preventDefault further down a chain creates risk that things above it will yield.    
08:24
<Ashley Claymore>
One solution is to determine if preventDefault is required as early as possible, before combing with other observables.