I'm sure that there's a more elegant solution, but you could simply search for a paragraph ending in a lowercase letter or a punctuation sign followed by a paragraph starting with a lowercase letter and then join them with a space.
Code:
Find:([[:lower:]],*;*:*)</span></p>\n\n <p class="calibre"><span>([[:lower:]])
(The regex assumes that Tidy is on and that there are two spaces before each <p>.)