you most likely ran into a bug with boundary events that was found in 5.4. It was due to the event is incorrectly canceled (on definition level instead of instance level) and that causes the process to ignore the signals (or might cause failure as in your case). Best would be to either create reproducer so I could give a try on latest version (v6) to ensure it is fixed or try it yourself with 6.0 snapshot on your end.
HTH