For ep capture, the square the capturing pawn ends on is used, not the square of the captured pawn. So there is still no need for disambiguation.
Biggest string on algebraic notation

The subjective move and position analysis characters (!?, !!, =, +/- etc.) shouldn't be included in the character count either as they're not a part of formal algebraic notation.

If you have doubled pawns, you get to indicate which one by rank, giving you a an additional character for a grand total of eight(!!).
d7xe8=Q#
No. If you have doubled pawns on d6 and d7, only the one on d7 can capture at e8, so the rank disambiguation is not needed.
If White had the option of en passant and a normal capture at the same time it might work, but I never liked the idea of noting the starting position of the pawn unless there were two pieces that could capture and even then you could just write e.p.
Here White has 3 captures. I think writing 2.cxd5 e.p. is needed here to capture with c5 since we might not know which c-pawn White used but 2.c5xd5 e.p. and 2.e4xd5 feels like overkill to me.
cxd6
cxd5
exd5
No more than four.
P-KKt8=Q++