Hi - from a teacher perspective, holding a child back in prep is probably more ideal than waiting until they reach middle/upper primary.
Choosing not to hold your child back can sometimes mean that they struggle in many different ways for the rest of their schooling life, this can be socially, their maturation rate, ability to work through problems and academically as well.
Trying to "catch" a child up so they can progress to the next grade is not always the best course of action because they can regress over the school holidays and you're back to square one.
My thoughts are; look at your child compared to the children in the grade in terms of how mature he is, his ability to make friends and his coping ability when he has problems - if you think he struggles in these areas then I would definitely recommend another year in prep, regardless of how he is doing academically at this stage. Academics aren't the most important reason to keep a child back, many children may academically be ok and still stay back because they are immature for their age and unable to cope as well as other kids, this then affects their learning confidence for the rest of their schooling years.