This is a bit of a hack, but you can pass a negative constant to the update(time) method of your System to act as group triggers. You could subclass System into a GroupSystem class which accepts a negative value in the constructor as its group trigger. Then in GroupSystem.update() if the time passed in is negative and is equal to the stored trigger value, it runs groupUpdate(), which you implement in your GroupSystem subclass. To trigger any group of systems, you supply the negative trigger value of the group to engine.update().
Worst case, this gives you a lot of systems that do fast (but pointless) conditional checks. I agree that it would be nice if Ash provided a manner of grouping systems and running them independently. Another way of handling this that I've used before to implement a turn-based system is to check a shared object if the turn number has changed. But I think a GroupSystem class would be more elegant. You could also maintain your own array or SystemList of Systems, supplying them a copy of the engine object and manually running their update method as needed, but I tried that before and it felt like a bigger kludge.
I don't recommend using separate engines unless you have a clear separation of entities.