I thought about those approaches
In theory you could test the different integrations between the parts of your software as well
if a -> b works and b -> c works and c -> d works
a -> b -> c -> d also works
maybe just keeping the state of the sequences withing the integration test but than you would need to keep the test sequence in order. or you move in the function it depends if you're doing it OOP or FP I guess.
i am just thinking out loud here, I guess most of these thought already crossed your mind. hope this helps at least little.