Acceptance tests tend to be less “pure” than lower-level tests because of the extra complexity of the component under test. The first question to figure out is just how slow these tests actually are. Perhaps a few small changes to the design would make the system much more testable. Those extra hooks generally turn out to be useful for other purposes.
The next usual response it think about the “pyramid of testing” - do most of the testing at lower levels, and write fewer higher level tests based on a degree of confidence about the next level down. The worst maintenance situation is usually the inverse pyramid where everything is tested from the outside.
Whatever you end up doing, you need to think about making sure that you know exactly what’s happened to the system and you can detect when and why it’s failed.
Finally, the most important thing to remember is to get on with it /and/ to be ready to restructure and even rewrite your tests as your understanding grows. This never gets old.
S