When thinking of a solution to this problem, we immediately understand the following:
It is obvious that some crosser must come back with the flashlight; it is efficient to use some of the fastest crossers for this purpose. Also, it is obvious that grouping some sluggish crossers together is efficient, as long as some already placed fast crosser can take the torch back, if needed.
One of the first alternatives that come to mind is to have the fastest crosser as universal light bearer. Hence, for instance, crossing as
1) pass A D
2) back A
3) pass A C
4) back A
5) pass A B
...fulfills the objective in 19 minutes. The fastest crosser has been used as torchbearer; however, we have made use of no synergy by putting C or D together.
So, we may try the following approach:
1) pass A B
2) back B (leaves the efficient carrier A for later)
3) pass C D (uses a 10-minute pass for both slower crossers)
4) back A
5) pass A B
... and use instead 17 minutes. Or equivalently:
1) pass A B
2) back A (leaves B for later)
3) pass C D (uses a 10-minute pass for both slower crossers)
4) back B
5) pass A B
Max.
Colour your way out of the mess maze.