Asterisk handles late offer, although at least some versions have some issues with handling it on re-invites. Cisco is the only system I ever remember doing late offers and whether or not it does them depends on whether it intends to pass the RTP directly between the endpoints, or not (although I can’t remember which way is which).
The problem that Asterisk has, at least in 1.6.1, is that it offers the current negotiated state if there is an incoming late offer re-invite, when it should offer the starting state (all capabilities and call not held).