Nick, In your case it sounds like you are already filling up the existing time chunks with large numbers of full sized segments.
So ... making granularity finer in this case would help with query pruning ONLY if your queries are filtering on time ranges smaller than 30 minutes ... e.g if your queries are mostly looking at the most recent 5-10 minutes of activity, then pruning would work better if your segment was at the 5-10 minute granularity or smaller.
If your __time value is being truncated to the same level as the segment granularity, and you are using range partitioning, then you may benefit slightly from smaller segments due to the records within the segment logically being sorted by the partitionig columns. The records are always logically sorted first by the __time value, so for this to happen all of the __time values within the segment should be the same value.
You also want to make sure you don't lose the benefits of paralellism on the Historicals. For a given query, you want each Historical cpu to process N segments. If there are fewer segments than historical cpus then you are leaving resources unused to process the query. So, let's say you have 100 Historical cpus on your cluster, then for any given query, processing 500 or more segments should be good.