query posts returns 10 records

Try taking out the 'paged' => $paged parameter, as it is simply returning the amount of results for that page, which seems to be set at 10.

(You will need to do two separate queries – one for getting the true count, and one for displaying the posts in a paginated format.)